pymongo find () vs mongodb find (), pymongo find () gibt weniger Daten über das Dokument

8

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

%Vor%

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

    
daydreamer 14.11.2011, 21:20
quelle

2 Antworten

12

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() .

    
Lycha 14.11.2011, 21:35
quelle
3

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)

    
dcrosta 14.11.2011 21:35
quelle

Tags und Links