繁体   English   中英

在MongoDB中更新嵌入式文档

[英]Updating embedded document in MongoDB

我的文档结构如下:

{_id: 1, country: 'USA', names: [{language: 'en', name: 'New York', state:'new'}, {language: 'es', name: 'Nueva York', state:'translated'}]}
{_id: 2, country: 'France', names: [{language: 'en', name: 'Paris', state:'new'}, {language: 'it', name: 'Parigi', state:'translated'}]}
...

我想更新特定语言的项目状态,如果该语言不存在,则添加相应的嵌入式文档。 例如,我想更新第1项以将state='new'language='es'因为该语言存在:

{_id: 1, country: 'USA', names: [{language: 'en', name: 'New York', state:'new'}, {language: 'es', name: 'Nueva York', state:'translated'}]}

我想将嵌入文档添加到state='new'language='fr'项目2中,因为它不存在:

{_id: 2, country: 'France', names: [{language: 'en', name: 'Paris', state:'new'}, {language: 'it', name: 'Parigi', state:'translated'}, {language: 'fr', name: 'Paris', state:'new'}]}

我怎样才能做到这一点?

谢谢。

您需要使用$位置运算符。 有关更多信息,请参见http://www.mongodb.org/display/DOCS/Updating#Updating-The%24positionaloperator

在你的情况下

db.cities.update({'_id':1,'names.language':'es'},{$set:{'names.$.state':'new'}});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM