我更新記錄在我的收藏,像這樣:更新的高效MongoDB中/ pymongo(也許就地?)記錄
for document in myDB.find():
if compliesToSomeRule(document):
myDB.update({'_id':document['_id']}, {'$set':{'something':'somevalue'}})
這是最有效的方式做到這一點?
這似乎很奇怪,我必須將更新的第一個參數設置爲文檔的_id
,因爲是重新查詢索引?
有沒有辦法更新「到位」可以這麼說?
但發現子句來請記錄一下......這已經被發現了嗎?也許不是。 p.s. - 最好的XKCD呃? :D – LittleBobbyTables 2013-02-26 16:21:45
我認爲Ian得到的是更新調用的第一部分正在執行「compliesToSomeRule」部分。在這種情況下,它是說document._id == expected_id,非常基本/簡單。但是你可以這樣做:myDB.update({'a':0},{'$ set':....})。在這種情況下,你指定了一個== 0。做這個更新會修改任何一個== 0的文檔,它和你的「compliesToSomeRule」方法相同。編輯:我要寫一個更完整的答案... – ACE 2013-02-26 22:37:01