MongoDB Document de requête : db.collection.find() avec exemple

⚡ Résumé intelligent

MongoDB Les opérations de requête de documents permettent de récupérer des enregistrements d'une collection à l'aide de la fonction `db.collection.find()`. Par défaut, cette méthode renvoie tous les documents, accepte des critères de filtrage tels que la correspondance de champs et l'opérateur `$gt`, et met en forme les résultats avec la commande `forEach(printjson)`.

  • 🔍 Fonction find() : La méthode db.collection.find() récupère des documents à partir d'une collection. MongoDB collection, renvoyant tous les documents lorsqu'aucun filtre n'est spécifié.
  • (I.e. Critères de filtrage : Le passage d'un objet de requête, tel que {EmployeeName: “Smith”}, ne renvoie que les documents qui correspondent à la condition.
  • Question Operateurs : Les opérateurs de sélection comme $gt, $lt et $in affinent les résultats, par exemple en trouvant les employés dont l'identifiant est supérieur à 2.
  • 🇧🇷 Readable Sortie : L'enchaînement de forEach(printjson) imprime chaque document renvoyé dans un format JSON propre.
  • 🧾 Projection: Un deuxième argument de la fonction find() permet de sélectionner les champs à inclure ou à exclure des résultats.

La méthode de récupération ou d'obtention de données à partir d'un MongoDB la base de données est réalisée en utilisant MongoDB requêtes. Lors de l'exécution d'une opération de requête, on peut également utiliser des critères ou des conditions qui peuvent être utilisés pour récupérer des données spécifiques de la base de données.

MongoDB fournit une fonction appelée db.collection.find() qui est utilisé pour récupérer des documents à partir d'un MongoDB base de données.

Au cours de ce MongoDB Dans le didacticiel de requête, vous verrez comment cette fonction est utilisée de différentes manières pour atteindre l'objectif de récupération de documents.

Que représente db.collection.find() dans MongoDB?

La méthode db.collection.find() est le principal moyen de lire des documents à partir d'une collection. MongoDB La fonction `collection` renvoie tous les documents de la collection lorsqu'elle est appelée sans argument. En revanche, si vous lui fournissez un objet de requête, elle ne renvoie que les documents correspondant aux critères spécifiés, vous permettant ainsi de récupérer précisément les données dont vous avez besoin.

La méthode renvoie un curseur, c'est-à-dire un pointeur vers l'ensemble de résultats plutôt que vers les documents eux-mêmes. On parcourt généralement le curseur pour afficher les résultats, souvent avec `forEach(printjson)` pour afficher chaque document au format JSON. Si vous n'avez besoin que d'un seul enregistrement, MongoDB Fournit également la fonction findOne(), qui renvoie le premier document correspondant au lieu d'un curseur. Ensemble, find() et findOne() couvrent la plupart des opérations de lecture dans un MongoDB base de données, de la récupération de collections entières au filtrage par valeurs de champs spécifiques.

MongoDB Requête de base Operations

Les bases MongoDB Les opérateurs de requête couvrent les opérations simples telles que l'obtention de tous les documents dans un MongoDB collection. Regardons un exemple db.collection.find de la façon dont nous pouvons y parvenir.

Tout notre code sera exécuté dans le MongoDB Javascénario shell de commande. Considérons que nous avons une collection nommée « Employé » dans notre MongoDB base de données et nous exécutons la commande ci-dessous.

MongoDB Requête de base Operations
MongoDB Opération de requête de base

Code Explication:

  1. Employé est le nom de la collection dans le MongoDB base de données
  2. Le MongoDB find query est une fonction intégrée qui est utilisée pour récupérer les documents de la collection.

Si la commande est exécutée avec succès, la sortie suivante sera affichée pour le MongoDB trouver un exemple

Sortie :

MongoDB Requête de base Operations

La sortie montre tous les documents présents dans la collection.

Nous pouvons également ajouter des critères à nos requêtes afin de pouvoir récupérer des documents en fonction de certaines conditions.

MongoDB Exemple de requête – 1

Regardons quelques-uns MongoDB interrogez des exemples de la façon dont nous pouvons y parvenir.

db.Employee.find({EmployeeName : "Smith"}).forEach(printjson);

Code Explication:

  1. Ici, nous voulons rechercher un employé dont le nom est « Smith » dans la collection, nous saisissons donc les critères de filtre comme EmployeeName : « Smith »

Si la commande est exécutée avec succès, la sortie suivante sera affichée

Sortie :

MongoDB Exemple de requête

Le résultat montre que seul le document contenant « Smith » comme nom de l'employé est renvoyé.

MongoDB Exemple de requête – 2

Maintenant dans ce MongoDB tutoriel sur les requêtes, jetons un coup d'œil à un autre exemple de code qui utilise le critère de recherche supérieur à. Lorsque ce critère est inclus, il recherche en fait les documents dans lesquels la valeur du champ est supérieure à la valeur spécifiée.

db.Employee.find({Employeeid : {$gt:2}}).forEach(printjson);

Code Explication:

  1. Ici, nous voulons rechercher tous les employés dont l'identifiant est supérieur à 2. Le $gt est appelé un opérateur de sélection de requête, et ce qui signifie simplement est d'utiliser l'expression supérieure à.

Si la MongoDB la commande select fields est exécutée avec succès, la sortie suivante s'affiche

Sortie :

MongoDB Exemple de requête

Tous les documents dont l'identifiant d'employé est supérieur à 2 sont renvoyés.

MongoDB Question Operajeudi

MongoDB Filtre les documents à l'aide d'opérateurs de sélection de requête dans les critères de la fonction `find()`. Ces opérateurs permettent de faire correspondre des plages, des listes et des négations, et pas seulement des valeurs exactes. Le tableau ci-dessous répertorie les opérateurs les plus courants :

Opérateur Sens Exemple
$gt Supérieure à {Employeeid: {$gt: 2}}
$ lt Less que {Employeeid: {$lt: 5}}
$ gte Plus grand ou égal à {âge: {$gte: 18}}
$ lte Less supérieur ou égal à {âge: {$lte: 60}}
$ ne Pas égal à {statut: {$ne: “actif”}}
$dans Correspond à n'importe quelle valeur dans une liste {dept: {$in: [“RH”,”IT”]}}

Vous pouvez également combiner des conditions avec `$and` et `$or` pour construire des requêtes plus précises. Choisir le bon opérateur permet d'optimiser les requêtes et de ne renvoyer que les documents nécessaires à votre application.

Comment utiliser la projection avec find()

Par défaut, la fonction find() renvoie le document entier, y compris tous les champs. Souvent, seuls quelques champs sont nécessaires, comme un nom ou un identifiant. MongoDB vous permet de contrôler cela grâce à une projection, qui est un deuxième argument passé à find() et qui liste les champs à inclure ou à exclure.

Pour n'inclure que certains champs, définissez-les sur 1 dans l'objet de projection. La requête suivante renvoie uniquement le champ EmployeeName pour chaque document :

db.Employee.find({}, {EmployeeName: 1}).forEach(printjson);

MongoDB Renvoie toujours le champ _id, sauf si vous l'excluez explicitement. Pour le masquer, définissez _id sur 0 :

db.Employee.find({}, {EmployeeName: 1, _id: 0}).forEach(printjson);

Vous pouvez également exclure des champs au lieu de les inclure en leur attribuant la valeur 0. Par exemple, la requête ci-dessous renvoie tous les champs sauf Employeeid :

db.Employee.find({}, {Employeeid: 0}).forEach(printjson);

Il est important de noter que l'inclusion et l'exclusion ne peuvent être combinées dans une même projection, à l'exception du champ _id. L'utilisation de projections réduit la quantité de données transférées depuis le serveur, ce qui accélère les requêtes et facilite la lecture des réponses, notamment pour les documents volumineux.

FAQ

La fonction `find()` renvoie un curseur sur tous les documents correspondant à la requête, ce qui peut expliquer la présence de nombreux résultats. La fonction `findOne()` renvoie uniquement le premier document correspondant sous forme d'objet unique, ou `null` si aucun document ne correspond.

Enchaînez les fonctions `sort()` et `limit()` avec le curseur `find()`. Par exemple, `find().sort({age:1}).limit(5)` renvoie les cinq enregistrements les plus récents. Utilisez 1 pour un tri croissant et -1 pour un tri décroissant dans `sort()`.

Utilisez la fonction `countDocuments()` avec le même filtre, par exemple `db.Employee.countDocuments({EmployeeName:”Smith”})`. Elle renvoie le nombre de documents correspondants sans les récupérer, ce qui est plus rapide que de lire et de compter l'ensemble des résultats.

L'IA peut convertir une requête en langage naturel en une requête find() avec les opérateurs et la projection appropriés, et expliquer chaque partie. Il est impératif de tester la requête sur des données de test avant de l'utiliser en production.

Oui. L'IA peut analyser un plan de requête, repérer les index manquants ou les opérateurs inefficaces, et suggérer des index ou des filtres à réécrire. Cela permet aux développeurs d'améliorer plus rapidement les performances de la fonction `find()` sur les grandes collections.

Résumez cet article avec :