Python MongoDB Trova
In MongoDB utilizziamo i metodi find e findOne per trovare i dati in una raccolta.
Proprio come l' istruzione SELECT viene utilizzata per trovare i dati in una tabella in un database MySQL.
Trova uno
Per selezionare i dati da una raccolta in MongoDB, possiamo utilizzare il
find_one()
metodo.
Il find_one()
metodo restituisce la prima occorrenza nella selezione.
Esempio
Trova il primo documento nella collezione clienti:
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
x = mycol.find_one()
print(x)
Trova tutto
Per selezionare i dati da una tabella in MongoDB, possiamo anche usare il
find()
metodo.
Il find()
metodo restituisce tutte le occorrenze nella selezione.
Il primo parametro del find()
metodo è un oggetto query. In questo esempio utilizziamo un oggetto query vuoto, che seleziona tutti i documenti nella raccolta.
Nessun parametro nel metodo find() ti dà lo stesso risultato di SELECT * in MySQL.
Esempio
Restituisci tutti i documenti nella collezione "clienti" e stampa ogni documento:
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
for x in mycol.find():
print(x)
Restituisci solo alcuni campi
Il secondo parametro del find()
metodo è un oggetto che descrive quali campi includere nel risultato.
Questo parametro è facoltativo e, se omesso, tutti i campi verranno inclusi nel risultato.
Esempio
Restituisci solo i nomi e gli indirizzi, non gli _id:
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
for x in mycol.find({},{ "_id": 0, "name": 1, "address": 1 }):
print(x)
Non è consentito specificare entrambi i valori 0 e 1 nello stesso oggetto (tranne se uno dei campi è il campo _id). Se specifichi un campo con valore 0, tutti gli altri campi ottengono il valore 1 e viceversa:
Esempio
Questo esempio escluderà "indirizzo" dal risultato:
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
for x in mycol.find({},{ "address": 0 }):
print(x)
Esempio
Viene visualizzato un errore se si specificano entrambi i valori 0 e 1 nello stesso oggetto (tranne se uno dei campi è il campo _id):
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
for x in mycol.find({},{ "name": 1, "address": 0 }):
print(x)