无法在PyMongo中更新文档

时间:2012-03-21 08:38:41

标签: python pymongo

我在Python / PyMongo中有代码(代码应该模拟内部联接和第二个集合中的所有文档(在内部嵌入)并添加到Mongo中的第一个适当的文档)。想法是加载两个集合并传递两个字段(连接字段的名称)和第二个集合中的所有文档,具有相同的属性,如第一个放入列表中,并添加到第一个集合中的相应文档。

(例如在第一次收集中我有文件“file”,“人口”,第二次有“国家”和“汽车工厂”,想把(denormalize)所有的第一个收集清单适当国家的工厂)

    for f in first_collection_records:
        temp=[]
        id=f['_id']
        second_collection_records.rewind()
        for s in second_collection_records:
            if f[field_one]==s[field_two]:
                temp.append(s)
        f[self.__second_collection_name__]=temp
        first_collection_records.update({"_id":id}, f, safe=True)

但我收到错误'Cursor'对象没有属性'update'。我做错了什么?

1 个答案:

答案 0 :(得分:6)

first_collection_recordspymongo.cursor.Cursor个对象。这是你拨打db.first_collection.find()时得到的结果。您需要在原始update对象上调用collection

# assuming your query looked something like this
first_collection_records = db.first_collection.find()

# your code here....

# your last line should reference the collection object to do the update
db.first_collection.update({"_id":id}, f, safe=True)