我想使用pymongo从MongoDB获取所有更新的文档。
我尝试使用findOneAndUpdate()但它只更新了一个文档。 还试过使用MongoDB js服务器功能,但它太慢了,大多不推荐。
db.system.js.save({
_id: "distributedTaskQueue",
value : function(coll,status,limit,fromStatus,toStatus) {
records = db.getCollection(coll).find({status:fromStatus}).limit(limit)
results.forEach (function(record){
record[status]= toStatus
db.getCollection(coll).save(record);
})
return records;
}
})
这个想法是使用pymongo在100台服务器上运行它来获取要处理的文档。
答案 0 :(得分:0)
您正在寻找update_many
- http://api.mongodb.com/python/current/api/pymongo/collection.html#pymongo.collection.Collection.update_many
按status
查找并使用$set
更新toStatus
。
手动迭代文档将是缓慢且低效的。