在mongodb中没有索引的嵌套数组中搜索值

时间:2015-02-19 12:57:40

标签: mongodb mongoose

我的mongoDB架构如下。

"interpretationlist": [
{
    "interpretations": [
        {
            "id": "1",
            "value": "value1"
        },
        {
            "id": "2",
            "value": "value2"
        }
    ]
},
{
    "interpretations": [
        {
            "id": "3",
            "value": "value3"
        }
    ]
}
]

我希望搜索interpretationid的{​​{1}}并更新其值。 我怎样才能做到这一点。 我不知道怎么能这样做。

1 个答案:

答案 0 :(得分:0)

您好我不知道如何在mongo查询中执行此操作,但我写下以下脚本将解决您的问题

         db.collectionName.find({
     "interpretationlist": {
         "$exists": true
     }
     }).forEach(function(data) {
     for (var i = 0; i < data.interpretationlist.length; i++) {
         for (var j = 0; j < data.interpretationlist[i].interpretations.length; j++) {
             var query = {};
             var updateQuery = {};
             findkey = [];
             findkey.push("interpretationlist." + i + ".interpretations." + j + ".id");
             query[findkey] = "1";
             updateQuery[findkey] = "20";
             db.collectionName.update(query, {
                 "$set": updateQuery
             }, false, false);
         }
     }
     })