无法找到相关信息,希望这不是一个重复的问题。
我想在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"?
感谢您的帮助。
答案 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();