更新MongoDB中的嵌入式文档

5
我的文档结构如下:
{_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以设置language='es'时的state='new',因为该语言已存在:

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

我想在第二项中添加一份嵌入式文档,并设置state='new'language='fr',因为它不存在:

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

我该如何做到这一点?谢谢。
1个回答

2

1
是的,但我想知道是否可以在一次操作中执行我所描述的操作:如果存在嵌入式文档,则更新嵌入式文档,否则添加嵌入式文档。 - alste

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接