Upsert und Multi-Flag in Pymongo

8

Ich arbeite an Pymongo und das ist mein Dokument:

%Vor%

Ich möchte die "Zuweisungs" -Eigenschaft aller solcher Dokumente aufheben. Ich konnte dies auf der Mongo-Shell erreichen, indem ich Folgendes machte:

%Vor%

, d. h., ich habe das upsert- und das multi-Flag als die letzten zwei Parameter an die Funktion update function für die Sammlung von Benutzern übergeben. Allerdings habe ich das mit Pymongo gemacht:

%Vor%

Aber der Python-Interpreter hat einen Fehler wie folgt ausgelöst:

%Vor%

Wo gehe ich falsch?

    
swaroopsm 17.02.2013, 19:28
quelle

1 Antwort

24

Das Problem ist, dass die beiden Flags, die Sie übergeben, nicht upsert und multi sind. Basierend auf der Dokumentation von PyMongos Collection.update (gefunden hier ), sieht es so aus, als könnten Sie Werte für die Optionen upsert und manipulate übergeben, obwohl ich mir nicht sicher bin.

Alles, was Sie tun müssen, um dies zu lösen, ist eine der großartigsten Funktionen von Python: benannte Argumente. Indem Sie angeben, welche Optionen Sie an update übergeben, fügen Sie Ihrem Code Klarheit hinzu und sorgen dafür, dass solche Unfälle nicht passieren.

In diesem Fall möchten wir die Optionen upsert=False und multi=True übergeben.

%Vor%     
James Brewer 18.02.2013, 02:04
quelle

Tags und Links