如果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中编写和使用函数?
答案 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});