Python-MongoDB- Suche
In MongoDB verwenden wir die Methoden find und findOne , um Daten in einer Sammlung zu finden.
So wie die SELECT -Anweisung verwendet wird, um Daten in einer Tabelle in einer MySQL-Datenbank zu finden.
Einen finden
Um Daten aus einer Sammlung in MongoDB auszuwählen, können wir die
find_one()
Methode verwenden.
Die find_one()
Methode gibt das erste Vorkommen in der Auswahl zurück.
Beispiel
Finden Sie das erste Dokument in der Kundensammlung:
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
x = mycol.find_one()
print(x)
Finde alle
Um Daten aus einer Tabelle in MongoDB auszuwählen, können wir auch die
find()
Methode verwenden.
Die find()
Methode gibt alle Vorkommen in der Auswahl zurück.
Der erste Parameter der find()
Methode ist ein Abfrageobjekt. In diesem Beispiel verwenden wir ein leeres Abfrageobjekt, das alle Dokumente in der Sammlung auswählt.
Ohne Parameter in der Methode find() erhalten Sie das gleiche Ergebnis wie SELECT * in MySQL.
Beispiel
Senden Sie alle Dokumente in der Sammlung "Kunden" zurück und drucken Sie jedes Dokument aus:
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
for x in mycol.find():
print(x)
Nur einige Felder zurückgeben
Der zweite Parameter der find()
Methode ist ein Objekt, das beschreibt, welche Felder in das Ergebnis aufgenommen werden sollen.
Dieser Parameter ist optional, und wenn er weggelassen wird, werden alle Felder in das Ergebnis aufgenommen.
Beispiel
Geben Sie nur die Namen und Adressen zurück, nicht die _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)
Sie dürfen nicht sowohl 0- als auch 1-Werte im selben Objekt angeben (außer wenn eines der Felder das _id-Feld ist). Wenn Sie ein Feld mit dem Wert 0 angeben, erhalten alle anderen Felder den Wert 1 und umgekehrt:
Beispiel
Dieses Beispiel schließt "Adresse" aus dem Ergebnis aus:
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
for x in mycol.find({},{ "address": 0 }):
print(x)
Beispiel
Sie erhalten einen Fehler, wenn Sie sowohl 0- als auch 1-Werte im selben Objekt angeben (außer wenn eines der Felder das _id-Feld ist):
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)