Python MongoDB Ricerca

In MongoDB, usiamo i metodi find e findOne per trovare dati nella raccolta.

come SELECT utilizzato per trovare dati in una tabella del database MySQL.

trova un elemento

Per selezionare dati in una raccolta di MongoDB, possiamo usare find_one() funzione.

find_one() La funzione restituisce il primo match nella selezione.

Esempio

trova il primo documento nella raccolta "customers":

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

Esegui l'esempio

trova tutto

Per selezionare dati da una tabella in MongoDB, possiamo anche usare find() funzione.

find() La funzione restituisce tutti i match nella selezione.

find() Il primo parametro della funzione è l'oggetto query. In questo esempio, abbiamo usato un oggetto query vuoto, che seleziona tutti i documenti della raccolta.

find() La funzione non ha parametri che forniscano lo stesso risultato di SELECT * in MySQL.

Esempio

ritorna tutti i documenti della raccolta "customers" e stampa ogni documento:

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

Esegui l'esempio

ritorna solo alcuni campi

find() Il secondo parametro della funzione è l'oggetto che descrive i campi inclusi nel risultato.

Questo parametro è opzionale, se omesso, tutti i campi verranno inclusi nei risultati.

Esempio

Restituisce solo nome e indirizzo, non _ids:

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

Esegui l'esempio

Non è permesso specificare contemporaneamente valori 0 e 1 nello stesso oggetto (a meno che uno dei campi non sia il campo _id). Se si specifica un valore 0 per un campo, tutti gli altri campi avranno valore 1, e viceversa:

Esempio

Questo esempio esclude "address" dai risultati:

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

Esegui l'esempio

Esempio

Se si specificano contemporaneamente valori 0 e 1 nello stesso oggetto, si verifica un errore (a meno che uno dei campi non sia il campo _id):

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