2016-08-16 5 views
0

に定義されていない私は、MongoDBの中の文書を検索し、更新のpythonプログラムを作成しようとしている:(pymongo:グローバル名が「ReturnDocument」

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) 

しかし、私は次のようなエラーメッセージが出ていどうやらIあなたが最初の ReturnDocumentクラスをインポートする必要があり

NameError: global name 'ReturnDocument' is not defined

答えて

0

)正しくreturn_documentを使用しますが、すべてのpymongoのドキュメントでは、私は言いません「メートル。あなたのスクリプトの先頭にこれを追加します。

from pymongo.collection import ReturnDocument 

詳細なドキュメント:http://api.mongodb.com/python/current/api/pymongo/collection.html#pymongo.collection.ReturnDocument

+0

は現在動作しているようです、感謝を! pymongoとpymongo.collectionはどちらもうまくいくようです...他のものよりも優れていますか? 「収集」は何をしますか? –

+0

私はこれを 'pymongo'から直接インポートしようとしたことはありません。常に文書化されたパスを使用してください。 – masnun

+0

より小さいパッケージを使用する方が効率的です。私はpymongo.collectionを使用します –