# MongoDB Find : retrouver des documents dans des collections

Les commandes [MongoDB](https://www.ionos.fr/digitalguide/sites-internet/developpement-web/mongodb-presentation-et-comparaison-avec-mysql/) Find et Find One permettent de localiser des documents correspondant aux paramètres de recherche. Ces commandes s’utilisent aussi avec Python ou Node.js.

## MongoDB Find : c’est quoi et à quoi ça sert ?

Si MongoDB vous est familier, vous savez déjà que le [système de gestion de bases de données](https://www.ionos.fr/digitalguide/hebergement/aspects-techniques/systeme-de-gestion-de-base-de-donnees-sgbd/ "Système de gestion de base de données (SGBD)") fonctionne un peu différemment des bases de données relationnelles classiques, comme par exemple [MySQL](https://www.ionos.fr/digitalguide/serveur/know-how/quest-ce-que-mysql/ "Qu’est-ce que MySQL&nbsp;?"). Certes, MongoDB permet aussi de créer des bases de données. Cependant, ces données sont stockées dans des **documents**, et non des tables, qui sont à leur tour regroupés en collections. Dans une telle configuration, comment **rechercher et afficher les données** correspondantes ? Pour cela, il existe deux [commandes MongoDB](https://www.ionos.fr/digitalguide/sites-internet/developpement-web/commandes-mongodb/ "Commandes&nbsp;MongoDB") : Find et Find One. Elles créent un curseur vers des documents qui correspondent aux critères de recherche définis.

## Syntaxe de la commande Find

Pour comprendre comment fonctionne la commande Find, il faut commencer par jeter un coup d’œil à sa syntaxe de base :

```none
db.collection.find
(
<query>,</query>
<projection></projection>
)
```

Find inclut également deux autres paramètres notés entre crochets. **&lt;query&gt;&lt;/query&gt;** est un paramètre de filtrage qui permet de spécifier la recherche, tandis que le deuxième paramètre facultatif **&lt;projection&gt;&lt;/projection&gt;** détermine les éléments à afficher pour chaque document correspondant.

## Exemple de commande Find

Imaginons par exemple que vous souhaitiez effectuer une recherche dans une liste de clients en France à l’aide de la commande Find de MongoDB. Cette liste se trouve dans la **base de données « clients »**. Pour afficher la liste de tous les documents, utilisez la commande Find sans spécifier de paramètre &lt;projection&gt; ni &lt;query&gt;. Voici à quoi ressemble le code :

```none
>use clients
switched to db clients
>db.liste_france.find();
>
```

Le résultat est la liste complète des clients français, avec toutes les informations enregistrées. Les documents sont toujours précédés de leur **identifiant unique \_id**, qui permet au système d’identifier chaque document avec précision.

## Exemple de commande Find avec paramètres

S’il peut en effet être utile de lister tous les documents à l’aide de la commande Find, cela devient beaucoup plus intéressant si vous souhaitez **filtrer uniquement des documents spécifiques**. C’est ce à quoi servent les paramètres mentionnés plus haut. Imaginons que les informations suivantes soient enregistrées pour chaque client et qu’elles puissent être affichées sur demande :

```none
"_id": ObjectID,
"name": "Martin"
"adress": "152 rue des Pyrénées"
"city": "Paris"
```

Si votre base de données contient plusieurs centaines de clients de différentes villes et que vous ne souhaitez filtrer par exemple que ceux vivant à Paris, voici comment faire :

```none
Db.liste_france.find({"city": "Paris"})
```

Le système filtre maintenant **toutes les entrées de la collection « liste\_france »** et n’affiche que les résultats dont la ville est Paris.

## Exemple de commande Find-One

À côté de l’option générale Find, qui permet d’afficher tous ou partie des documents, le système propose aussi la fonction supplémentaire MongoDB Find One. Cette méthode affiche exactement un document **correspondant aux critères de recherche**. C’est le premier document de la liste qui est sélectionné. Si aucun document ne correspond aux critères de recherche, le résultat est « null » est affiché. La syntaxe de Find One ressemble à celle de Find :

```none
db.collection.findOne
(
<query>,</query>
<projection></projection>
)
```

Dans ce cas aussi, **&lt;query&gt;** définit les critères de recherche, et **&lt;projection&gt;** (facultatif) indique les champs des résultats à afficher. En reprenant notre exemple ci-dessus avec la commande Find One, voici comment l’utiliser :

```none
>use clients
switched to db clients
>db.liste_france.findOne();
>
```

Dans ce cas, la sortie sera le premier document de votre liste de clients France.

## Commande MongoDB Find avec Node.js et Python

Il est aussi possible d’utiliser MongoDB avec [Node.js](https://www.ionos.fr/digitalguide/sites-internet/developpement-web/introduction-a-nodejs/) ou Python. Dans ce cas, la syntaxe de la commande Find est un peu différente, tout en **conservant les mêmes fonctionnalités de base**.

### Commande Find One avec Python

L’une des distributions MongoDB les plus populaires sous Python est PyMongo. Si c’est celle que vous utilisez, la commande Find One aura la syntaxe suivante :

```none
import pymongo
myclient = pymongo.MongoClient ("mongodb://localhost:24137/")
mydb = myclient ["clients"]
mycol = mydb ["liste_france"]
x = myco.find_one()
print ( x )
```

### Commande Find-One avec Node.js

L’environnement d’exécution JavaScript Node.js peut aussi être utilisé dans MongoDB. Si vous souhaitez y exécuter la commande Find One, voici à quoi ressemble le code :

```none
var MongoClient = require ('mongodb').MongoClient;
var url = "mongodb://localhost:24137/";
MongoClient.connect (url, function (err, db) {
if (err) throw err;
var dbo = db.db ("mydb");
dbo.collection ("liste_france").findOne ( {}, function (err, result) {
if (err) throw err;
console-log (result.name);
db.close();
} );
} );
```

---

### Conseil

Vous cherchez à trier vos documents dans MongoDB pour plus de lisibilité ? Alors gagnez du temps avec la [commande MongoDB Sort](https://www.ionos.fr/digitalguide/sites-internet/developpement-web/mongodb-sort/) !

---


This is a markdown version of: [https://www.ionos.fr/digitalguide/sites-internet/developpement-web/mongodb-find/](https://www.ionos.fr/digitalguide/sites-internet/developpement-web/mongodb-find/) for AI/LLM consumption.