从MongoDB中深层嵌套的数组中删除特定值

时间:2018-06-05 05:39:14

标签: mongodb mongodb-query mongodb-update

我有一份文件格式如下,

{  
   "entities":[  
      {  
         "info":{  
            "configId":[  
               "1234",
               "3213"
            ]
         }
      },
      {  
         "info":{  
            "configId":[  
               "73683",
               "38297",
               "1234"
            ]
         }
      },
      {  
         "info":{  
            "configId":["32683" ]
         }
      }
   ]
}

如何删除" 1234"来自一个更新命令中的所有configId数组?

我正在尝试以下操作,但它只会更新第一个。

db.asset.update({
   "entities.info.configId": "1234"
},
{
   $pull:{
      "entities.$.info.configId":{
         $in:[ "1234" ]
      }
   }
});

感谢。

编辑:

此查询最终适用于我:

db.asset.update({
   "entities.info.configId": "1234"
},
{
   $pull:{
      "entities.$[].info.configId":{
         $in:[ "1234" ]
      }
   }
});

0 个答案:

没有答案