2014-03-01 4 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

에 :

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 , 'addresses': 1}) - 주소를 놓쳤습니다 : 1 ;-) – j3d

7

패스

매개 변수로
{'_id': false} 

이 정확히 @ hanleyhansen의 대답과 동일하지만, 당신이 당신이 거짓 등을 상호 교환 0을 사용할 수 있음을 알려 find()

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

@ 소문자 (또는 0) –

+0

@IlanFrumer 감사합니다. 하루 종일 파이썬에서 일 해왔다. – hanleyhansen

+0

'주소 : {$ slice : [0, 1]}'은 검색어 매개 변수가 아니라 두 번째 매개 변수 (투영법)에 붙여 넣어야합니다. –

관련 문제