2011-08-29 207 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中回答的那樣。

儘管這個解決方法沒問題,但仍有一個問題要求進行該操作,儘管它不是原子性解決方案。

相關問題