2016-08-16 3 views
0

Ich versuche, ein Python-Programm zu schreiben, das ein Dokument in mongodb findet und aktualisiert:pymongo: global name ‚ReturnDocument‘ ist nicht definiert

db.collection.find_one_and_update({"Machine": "24", "Available": True}, 
            {"$set": {"Overview.Available": False}}, 
            projection= {"_id": 0, "Machine": 1, "Available": 1}, 
            return_document= ReturnDocument.AFTER) 

Aber ich erhalte die folgende Fehlermeldung (anscheinend I bin mit return_document nicht richtig, aber alle pymongo Dokumentation sagt, ich bin)

NameError: global name 'ReturnDocument' is not defined

Antwort

0

Sie müssen zuerst die ReturnDocument Klasse importieren. Fügen Sie diese an der Spitze des Skriptes:

from pymongo.collection import ReturnDocument 

Detaillierte docs: http://api.mongodb.com/python/current/api/pymongo/collection.html#pymongo.collection.ReturnDocument

+0

scheint jetzt zu arbeiten, danke! pymongo und pymongo.collection scheinen beide zu funktionieren ... ist einer besser als der andere? Was macht ".collection"? –

+0

Ich habe nie versucht, es direkt aus 'Pymongo' zu importieren. Benutze immer den dokumentierten Pfad. – masnun

+0

Die Verwendung eines kleineren Pakets sollte effizienter sein. Ich werde pymongo.collection verwenden –

Verwandte Themen