2014-02-27 92 views
0

我的文檔是這樣的MongoDB:如何從一個文檔中的嵌套數組刪除對象

"page_elements" : [ 
     { 
       "type" : "gallery", 
       "words" : [ 
         "gallery", 
         "photos" 
       ] 
     }, 
     { 
       "type" : "cart", 
       "words" : [ 
         "cart", 
         "shop" 
       ] 
     }, 
     { 
       "type" : "Privacy", 
       "words" : [ 
         "privacy", 
         "policy", 
         "privacy policy" 
       ] 
     }, 
     { 
       "type" : "cart", 
       "words" : [ 
         "cart", 
         "shopping cart", 
         "buy now", 
         "add to cart", 
         "add to basket" 
       ] 
     } 

錯誤,我已經更新車的兩倍。現在,我需要刪除陣列中的第一個購物車並保留文檔的其餘部分。

在這裏,我需要刪除

{ 
    "type" : "cart", 
    "words" : [ 
     "cart", 
     "shop" 
    ] 
} 

我想這個..

db.ds_master_language_words.remove({ "page_elements.type" : "cart" }) 
+0

@DanDascalescu不一樣的問題:通過賦予該數組元素匹配,以除去一個page_elements值。他只是想刪除**一個**數組元素。這是'.remove()'方法,在這裏是錯誤的。 –

回答

1

你不想刪除,要更新。 $unset將擺脫外地的,你知道的位置:

db.ds_master_language_words.update(
    { <your_document_id_match > }, 
    { $unset: { "page_elements.1": ""}} 
) 

這將設置爲null數組中,但現在很容易與$pull刪除:

db.ds_master_language_words.update(
    { <your_document_id_match > }, 
    { $pull: { "page_elements": null }} 
) 

另請參閱文檔爲update方法

http://docs.mongodb.org/manual/reference/method/db.collection.update/

+0

這也沒有工作..價值不被刪除 – GGGGG

+0

@Gireesh我壞,我沒有添加我做的第二部分 –

相關問題