2014-03-01 50 views
6

我在MongoDB的下列文件...如何防止MongoDB在查找文檔時返回對象ID?

{ 
    "_id" : ObjectId("531221cd960100960116b992"), 
    "username : "joe", 
    "address" : [ 
    { 
     "zip" : "8000", 
     "city" : "Zurich" 
    }, 
    { 
     "zip" : "6900", 
     "city" : "Lugano" 
    } 
    ] 
} 

...並取回我用下面的語句中的第二地址:

db.users.find({ _id: ObjectId("531221cd960100960116b992") }, { addresses: { $slice: [0, 1] } }) 

這工作,除了它也返回對象ID:

{ "addresses" : [ { "zip" : "6900", "city" : "Lugano" } ], "_id" : ObjectId("531221cd960100960116b992") } 

如何防止MongoDB返回對象ID?我知道我應該提供像_id : 0這樣的投影...但是我應該在哪裏將它放在上面的表達式中?我做了很多嘗試......但沒有成功。

謝謝。

回答

4

這是完全一樣@ hanleyhansen的答案,但只是讓你知道,你可以用假像交替使用0:

db.users.find({ _id: ObjectId("531221cd960100960116b992")}, { addresses: { $slice: [0, 1] } ,'_id': 0}) 
+0

db_users.find({_id:ObjectId(「531221cd960100960116b992」)},{addresses:{$ slice:[0,1]},'_ id':0這是我尋找的內容,'地址':1}) - 我錯過了地址:1 ;-) – j3d

7

{'_id': false} 

作爲參數傳遞給find()

db.users.find({ _id: ObjectId("531221cd960100960116b992")}, { addresses: { $slice: [0, 1] } ,'_id': false}) 
+0

它應該是假小寫(或0) –

+0

@IlanFrumer謝謝。一直在Python工作! – hanleyhansen

+0

'地址:{$ slice:[0,1]}'應粘貼在第二個參數(投影)中,而不是查詢參數中。 –

相關問題