更新ALL并使用pymongo从mongodb返回所有匹配的文档

时间:2017-02-26 07:26:03

标签: python mongodb pymongo

我想使用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台服务器上运行它来获取要处理的文档。

1 个答案:

答案 0 :(得分:0)

您正在寻找update_many - http://api.mongodb.com/python/current/api/pymongo/collection.html#pymongo.collection.Collection.update_many

status查找并使用$set更新toStatus

手动迭代文档将是缓慢且低效的。