2016-04-02 13 views
0

文書を置き換えようとしています。私はこれを実行するとPythonでreplace_oneを呼び出すときの例外

import pymongo 

connection = pymongo.MongoClient("mongodb://localhost:27017") 

db = connection.test 
collection = db.foo 

query = {} 

try: 
    cursor = collection.find(query) 
except Exception as e: 
    print "Exception: ", type(e), e 

for doc in cursor: 
    collection.replace_one({"_id", doc["_id"]}, {"foo", 1}) 

はしかし、私が取得:

TypeError: filter must be an instance of dict, bson.son.SON, or other type that inherits from collections.Mapping 

ここで何が起こっていますか? replace_oneの私のメソッドは、pymongoドキュメントのものと同じように見えます。

答えて

3

あなたはに渡している、項目間のこのカンマを参照してくださいがを設定します。

{"_id", doc["_id"]} 

しかし辞書合格している必要があります。

{"_id": doc["_id"]} 

同じを交換文書のために行きます - {"foo", 1}の代わりに{"foo": 1}

+0

ありがとうございます、私はちょうどPythonを始めました。 – BanksySan

関連する問題