Recherche MongoDB en Python

Dans MongoDB, nous utilisons les méthodes find et findOne pour rechercher des données dans une collection.

Comme la requête SELECT est utilisée pour rechercher des données dans une table de base de données MySQL.

Recherche d'un élément

Pour sélectionner des données dans une collection MongoDB, nous pouvons utiliser find_one() Méthode.

find_one() La méthode retourne le premier élément correspondant sélectionné.

Exemple

Recherche du premier document dans la collection "customers" :

Import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
x = mycol.find_one()
print(x)

Exécuter l'exemple

Recherche complète

Pour sélectionner des données dans une table MongoDB, nous pouvons également utiliser find() Méthode.

find() La méthode retourne tous les éléments correspondants sélectionnés.

find() Le premier paramètre de la méthode est l'objet query. Dans cet exemple, nous avons utilisé un objet query vide, qui sélectionne tous les documents de la collection.

find() La méthode ne fournit pas de paramètres, ce qui donne le même résultat que SELECT * dans MySQL.

Exemple

Retourne tous les documents de la collection "customers" et imprime chaque document :

Import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
for x in mycol.find():
  print(x)

Exécuter l'exemple

Ne retourne que certains champs

find() Le second paramètre de la méthode est un objet décrivant les champs inclus dans le résultat.

Ce paramètre est optionnel. Si omis, tous les champs seront inclus dans les résultats.

Exemple

Ne retourne que le nom et l'adresse, pas les _ids :

Import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
Pour x dans mycol.find({},{ "_id": 0, "name": 1, "address": 1 }):
  print(x)

Exécuter l'exemple

Il n'est pas permis de spécifier simultanément 0 et 1 dans le même objet (sauf si l'un des champs est le champ _id). Si le champ spécifié avec une valeur de 0, toutes les autres valeurs des champs sont 1, et vice versa :

Exemple

Cet exemple exclut "address" des résultats :

Import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
Pour x dans mycol.find({},{ "address": 0 }):
  print(x)

Exécuter l'exemple

Exemple

Si 0 et 1 sont spécifiés simultanément dans le même objet, une erreur se produira (sauf si l'un des champs est le champ _id) :

Import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
Pour x dans mycol.find({},{ "name": 1, "address": 0 }):
  print(x)