如何使用更新mongodb的循环

时间:2015-08-20 09:37:00

标签: mongodb

如果sale_order['orderId']中存在temp_sale_order,我正在尝试更新集合sale_order的文档。如果temp_sale_order中不存在,则会在sale_order中创建新文档。 (更新插入)。

但它只会在其中创建一个文档 如果我使用find而不是findOne。它会抛出一个错误:

错误:

uncaught exception: can't save a DBQuery object

我的查询:

db.getCollection('sale_order').update(
        db.getCollection('sale_order').find({},{orderId:1}),
        db.getCollection('temp_sale_order').findOne({},{orderId:1}),{upsert:true});

正确的方法是什么?如何使用上述查询在mongodb中编写和使用函数?

1 个答案:

答案 0 :(得分:1)

默认情况下,update方法仅更新一个文档。 您必须设置选项"multi" : true才能一次更新多个文档。

http://docs.mongodb.org/manual/reference/method/db.collection.update/

db.getCollection('sale_order').update(
        db.getCollection('sale_order').find({},{orderId:1}),
        db.getCollection('temp_sale_order').findOne({},{orderId:1}),{upsert:true, multi:true});