在MongoDB中,如何通过匹配嵌入式查询的数组中的元素来更新?

时间:2018-02-17 07:11:01

标签: mongodb mongoose

假设你有一个像这样保存的文件:

{ 
    _id: "1",
    thingy: {
         moreStuff: [
             {
                 _id:"a",
                 moreComplicated: [
                     {
                         _id:"a1",
                         info: "test"
                     },
                     ... // More similar elements
                 ]
             },
             ... // More similar elements
         ]
    }
}

假设您已经有办法获取文档的查询:

db.getCollection("thingies").find({"_id": 1});

现在,您正在寻找更新"信息" " a1"对象嵌套在所有其他对象和数组中。唯一能吸引的是" moreStuff"和#34;更复杂"数组不断更新,因此按阵列位置(如thingy.morestuff.0.moreComplicated.0.info)进行瞄准不会起作用。唯一的方法是查找每个对象的唯一mongoID。

如何通过将元素与值匹配而不是索引来查询数组?如果你有一个"发现"查询返回一个类似的对象。

0 个答案:

没有答案