2014-06-17 106 views
0

我有這樣一個集合:MongoDB中刪除嵌套對象

_id: {name: 'name', family: 'family'} 

我想刪除在通過使用$ _id一些對象,我怎麼能做到這一點? 例如我的查詢應該是這樣的:

db.persons.remove({_id: {$in: [ { name: 'name1', family: 'family1' } 
           , { name: 'name2', family: 'family2' } 
           ] 
         } 
       }) 
+1

然後出了什麼問題? –

+0

@尼爾,你是對的。:其實我的問題是領域的順序!如果我嘗試'db.persons.remove({_ id:{$ in:[{family:'family1',name:'name1'}]}})'什麼都沒發生,但上面的查詢工作正常。 – Amir

回答

1

你也可以用$or查詢和點符號做到這一點,如果你的領域並不總是以相同的順序:

db.persons.remove({ 
    "$or": [ 
     { "_id.name": "name1", "_id.family": "family1" }, 
     { "_id.name": "name2", "_id.family": "family2" }, 
    } 
}) 

不是貓鼬語法,但你明白了。它在邏輯上是相同的,但是字段順序不依賴於您指定的完整對象$in