我正在做一些与MongoDB相关的事情,我正在考虑如何将值从{“area”:“US”}的结构更新为{“area”:[“US”,“EN”]} 。
金额超过100,000, 所以我不认为read-> modify-> write会是正确的方法。 我希望这可以在一个更新表达式中完成。 任何语言都可以。(Python / Java / shell / JS ......)
最好的问候。
CipherChen
答案 0 :(得分:1)
有两种方法可以做到这一点:
<强>的forEach()强>
使用forEach()
函数在纯JS中编写“迁移”。示例here。这意味着阅读 - &gt;更新 - &gt;写
更新()多
只需使用mongodb查询传递multi
选项即可更新与您的查询匹配的所有文档。记录here
应该是这样的:
db.your_collection.update({ area: 'US' }, { $set: { area: ['US', 'EN'] } }, { multi: true })
答案 1 :(得分:0)
来自Mongo shell:
db.your_collection.update({area: "US"}, {$set: {area: ["US, "EN"]}}, {multi: true})
这将更新集合中具有值为“US”的area
字段的所有文档,并将其设置为["US", "EN"]
。 {multi: true}
选项指定为所有匹配执行此操作,而不仅仅是找到的第一个文档。
有关更具体的详细信息,请参阅the update documentation。