Python MongoDB Zoeken
In MongoDB gebruiken we de methoden find en findOne om gegevens in een verzameling te vinden.
Net zoals de SELECT -instructie wordt gebruikt om gegevens in een tabel in een MySQL-database te vinden.
Vind een
Om gegevens uit een verzameling in MongoDB te selecteren, kunnen we de
find_one()
methode gebruiken.
De find_one()
methode retourneert de eerste instantie in de selectie.
Voorbeeld
Vind het eerste document in de klantencollectie:
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
x = mycol.find_one()
print(x)
Vind alle
Om gegevens uit een tabel in MongoDB te selecteren, kunnen we ook de
find()
methode gebruiken.
De find()
methode retourneert alle exemplaren in de selectie.
De eerste parameter van de find()
methode is een query-object. In dit voorbeeld gebruiken we een leeg query-object, dat alle documenten in de collectie selecteert.
Geen enkele parameter in de methode find() geeft hetzelfde resultaat als SELECT * in MySQL.
Voorbeeld
Retourneer alle documenten in de collectie "klanten" en druk elk document af:
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
for x in mycol.find():
print(x)
Retourneer slechts enkele velden
De tweede parameter van de find()
methode is een object dat beschrijft welke velden in het resultaat moeten worden opgenomen.
Deze parameter is optioneel en als deze wordt weggelaten, worden alle velden in het resultaat opgenomen.
Voorbeeld
Retourneer alleen de namen en adressen, niet de _ids:
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)
Het is niet toegestaan om zowel 0 als 1 waarden in hetzelfde object op te geven (behalve als een van de velden het _id veld is). Als u een veld specificeert met de waarde 0, krijgen alle andere velden de waarde 1, en vice versa:
Voorbeeld
In dit voorbeeld wordt "adres" uitgesloten van het resultaat:
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
for x in mycol.find({},{ "address": 0 }):
print(x)
Voorbeeld
U krijgt een foutmelding als u zowel 0- als 1-waarden opgeeft in hetzelfde object (behalve als een van de velden het veld _id is):
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)