This question already has an answer here:
MongoDB pull array element from a collection
                            
                                (1个答案)
                            
                    
                4年前关闭。
        

    

在mongodb中努力使用$ pop。假设我有以下集合:

`{_id:3
  name: "item 1",
  subdoc:{
            array:[
                     {id: "999",
                      name:"bar"
                     },
                     {id: "777",
                      name:"foo-bar"
                     }
                  ],
            anotherproperty: "foo"
         }
}`


给定它的ID,我想从subdoc.array中删除一个项目。

因此,对于上面的文档,我如何删除id =“ 999”的项目,以便subdoc.array中唯一剩余的项目是id =“ 777”的项目?

最佳答案

$pop运算符删除数组的第一个或最后一个元素。传递$pop-1删除数组的第一个元素,传递1删除数组的最后一个元素。

我认为使用$pull更好

> db.docs.update({name: 'item 1'}, {$pull: {'subdoc.array': {'id': '999'}}})

10-07 13:32
查看更多