MongoDB如何删除嵌入式数组中的字段?

时间:2018-02-28 10:53:21

标签: mongodb python-2.7

我有一种情况,我想删除字典数组中的字段。

我知道如何删除普通字段: {$ unset:{:""}}

但请帮助我以下示例,我想删除第二个字典中的状态字段

{  
   "recs":[  
  {  
     "required_1":""
     "required_2":"info",
     "status":"completed",
     "datetime":"2018-02-02T06:00:04Z"
  },
  {  
     "required_1":""
     "required_2":"info",
     "status":"inprogress"
     "datetime":"2018-02-02T06:00:04Z"         
  }
 ],
   "mainstatus":"failed"
 }

2 个答案:

答案 0 :(得分:0)

您必须使用$符号:recs.$.status将选择status中所有记录的recs字段。

https://docs.mongodb.com/manual/reference/operator/update/positional/

答案 1 :(得分:-1)

您必须使用$ pull从数组中删除数据。

db.getCollection('TEST').update({/* some condition */}, {
    $pull: {
        recs: {"status" : "inprogress"}
    }
});