Ich habe ein partner collection
und ich benutze pymongo
, um die Daten von
abzurufen
Wenn ich die Sammlung mit MongoDB abfrage, sehe ich das folgende Ergebnis
Aber wenn ich über pymongo abfrage, hier ist was ich tue
%Vor%Hier ist, was ich im Ergebnis sehe:
%Vor%und ich bekomme name und primary_key im Ergebnis nicht, fehlt mir etwas?
Danke
Wenn Sie ein leeres Wörterbuch (Ihre criteria
Variable) als zweiten Parameter übergeben, bedeutet dies, dass keine Felder zurückgegeben werden sollen (außer _id
, das immer zurückgegeben wird). Der zweite Parameter für find()
definiert die gewünschten Felder. Versuchen Sie, criteria=None
oder nicht criteria
überhaupt zu setzen.
Verknüpfen Sie mit dem Pymongo-Dokument für find()
.
Dies liegt daran, dass die mongodb-Shell {}
als Feldselektor interpretiert und vs. wie pymongo ein leeres Wörterbuch interpretiert. Im Wesentlichen ignoriert die Shell das leere Objekt als Feldselektor, während pymongo es als "nichts zurückgeben" interpretiert (außer dem Standardwert von _id
).
Sie müssen keine Feldauswahl angeben, wenn Sie Pymongo oder die Mongodb-Shell verwenden (Sie können es einfach leer lassen). Also diese Aussage in der Shell:
%Vor%entspricht:
%Vor%(Diese Anweisung funktioniert sowohl in der Shell als auch im Pymongo)