2014-07-04 82 views
1

內我有以下蒙戈結構:蒙戈:刪除從數組元素的數組

{ 
"_id": 123, 
"rooms": [ 
    { 
     "room_code": 456, 
     "img": [ 
      { 
       "link": "blah", 
       "title": "Title" 
      }, 
      { 
       "link": "blah2", 
       "title": "Title2" 
      } 
     ] 
    }, 
    { 
     "room_code": 789, 
     "img": [ 
      { 
       "link": "blah", 
       "title": "Title" 
      }, 
      { 
       "link": "blah3", 
       "title": "Title3" 
      } 
     ] 
    } 
] 
} 

現在,我想從「rooms.img」鍵,其中"link":"blah"除去這些元素。就像這樣:

{ 
"_id": 123, 
"rooms": [ 
    { 
     "room_code": 456, 
     "img": [ 
      { 
       "link": "blah2", 
       "title": "Title2" 
      } 
     ] 
    }, 
    { 
     "room_code": 789, 
     "img": [ 
      { 
       "link": "blah3", 
       "title": "Title3" 
      } 
     ] 
    } 
] 
} 

我嘗試使用,

db.collections.update({"_id":123},{$pull: { 'rooms':{'img': { 'l': 'blah' } }}}) 

db.collections.update({"_id":123},{$pull: { 'room_info.img': { 'l': 'blah' } }}) 

但兩者都沒有工作。如何從列表中刪除元素(「img」),它是另一個列表(「房間」)的一部分?請指教。

+0

'$ elemMatch'可能有助於在這裏。 –

回答

0

你應該在原來的崗位使用投影opperator Doc

另外的樣子:Here