MongoDB中的多个更新查询

时间:2015-08-17 20:10:01

标签: mongodb mongoose

无法找到相关信息,希望这不是一个重复的问题。

我想在MongoDB中更新多个文档,但是使用特定查询并为每个文档更新值,例如,我有这个模型:

用户:{  name:String,  电子邮件:String }

假设我有两份文件:

User_A: {
 name: 'Charles Montoya',
 email: 'charles@email.com'
}
User_B: {
 name: 'Robbin Faz',
 email: 'robbin@email.com'
}

现在,我想做的是这样的事情:

db.user.update([
{ name: 'Robbin Faz' }, { $set: { email: 'robbin@email2.com' }, { upsert: true } },
{ name: 'Charles Montoya' }, { $set: { email: 'charles@email2.com' }, { upsert: true} }
])

如果这样的事情不可能,你建议我用哪种方式处理更新列表?或者我应该为" for"?

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

您可以进行批量更新和/或沮丧:

> var bulk = db.user.initializeUnorderedBulkOp();
> bulk.find( { name: 'Robbin Faz' } ).upsert().update( { $set: { email: 'robbin@email2.com' } });
> bulk.find( { name: 'Charles Montoya' } ).upsert().update(  { $set:{ email: 'charles@email2.com' } });
> bulk.execute();