2011-08-29 209 views
18

例如我有一个文件如何删除阵列的第n个元素MongoDB中

db.test.save({_id: 1, list:[ 
    {key: "a"}, 
    {key: "b"}, 
    {key: "c"}, 
    {key: "d"}, 
    {key: "e"} 
]}) 

,我需要从列表中删除第二元件。现在我分两步做。首先我取消设置第二列表元素,但是未设置操作不删除元素,这将是空,在那之后我拉从列表字段

db.test.update({_id: 1}, {$unset: {"list.2": 1}}) 
db.test.update({_id: 1}, {$pull: {list: null}}) 

我想问一下是否有解决方案做任何空值在一个操作?

回答

0

删除

db.test.update({{_id: 1},{"$pull" : {"list" : { "key" : "c"}}},false,false) 

更多信息不是在当前时间的值。正如在There is no straight way of pulling/removing by array index中回答的那样。

尽管这个解决方法没问题,但仍有一个问题要求进行该操作,尽管它不是原子性解决方案。

相关问题