1

我有以下格式的文件,

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

如何在一个更新命令中从所有 configId 数组中删除“1234”?

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

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" ]
      }
   }
});
4

0 回答 0