Python

2016-04-02 20 views
0

içinde replace_one çağrılırken istisna Bir belgeyi değiştirmeye çalışıyorum. Bunu çalıştırdığınızdaPython

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}) 

Ancak, ben alıyorum: Burada ne

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

oluyor? replace_one için kullandığım yöntem, pymongo dokümanlarındakiyle aynı görünüyor.

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

Ama sözlüğü geçti olmalıdır::

cevap

3

Eğer ayarlanmış bir de geçiyoruz, öğeler arasında bu virgül Bkz

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

Aynı yedek belge için gider - {"foo", 1} yerine {"foo": 1}.

+0

Teşekkürler, sadece daha yeni Python'u başlattım. – BanksySan