2011-08-29 13 views
18

Örneğin birMongodb dizinin n-th elemanı nasıl silinir

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

belgesine sahibim ve listeden ikinci elemanı kaldırmam gerekiyor. Şimdilik bunu iki adımda yapıyorum. Her şeyden önce ikinci liste elemanını unsetmem ama unset operatörün elemanı kaldırmamasını, null olamayacağını, bundan sonra nullable değerini liste alanından

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

çektim. tek bir operasyonda?

cevap

0

de

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

fazla bilgi kaldırmak istediğiniz değeri biliyorsanız. There is no straight way of pulling/removing by array index'da yanıtlandığı gibi.

Bu geçici çözüm tamam olsa da, atomik bir çözüm olmasa bile, bu işlemi isteyen açık bir sorun var.