MongoDB:如何修改值结构

时间:2013-07-23 03:06:48

标签: mongodb

我正在做一些与MongoDB相关的事情,我正在考虑如何将值从{“area”:“US”}的结构更新为{“area”:[“US”,“EN”]} 。

金额超过100,000, 所以我不认为read-> modify-> write会是正确的方法。 我希望这可以在一个更新表达式中完成。 任何语言都可以。(Python / Java / shell / JS ......)

最好的问候。

CipherChen

2 个答案:

答案 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