2012-06-11 3 views
1

어떻게 내가 특정 컬렉션의 문서 ID의 배열이있는 경우, 내가 어떻게 한 번의 조작으로 한 번에이 모든 문서를 얻을 수, 즉 자신의 _idmongodb는 id에 기반한 multiget을 지원합니까?

를 사용하여 여러 문서를 조회 할 수 있습니다

내가 좋아하는 뭔가를 사용할 수 있습니다 IDS의 ID1, ID2 3 개 문서, ID3

을 반환 MongoDB를 다음

db.collection.find({_id:[id1,id2,id3]}) 

과하면 해당 가능하며, 만약 그렇다면, 정확한 구문, 또는 방법은 무엇이며,이 어떤 advi 고려해야 할 예방책이나 예방책? 네, 가능

db.collection.find({ field : { $in : array } }); 

답변

2

그냥 $in 연산자를 사용합니다. 올바른 구문은 다음과 같습니다.

db.collection.find({ _id : { $in : [id1, id2, id3] }) 
3

을 : MongoDB를 doc 말한대로

+0

이 효율적입니까? id로 문서를 가져 오는 것은 다른 어떤 쿼리보다 훨씬 효율적입니다. 심지어 해당 필드에 인덱스가 있어도이 쿼리는 id 효율에 의한 gt 또는 인덱스 효율이있는 일반 쿼리를 사용합니까? 덕분에 – Joseph

+1

인덱스 된 필드로 쿼리하는 것만큼이나 효율적입니다. 사실, MongoDB는 '_id'를 자신의 형식으로 저장하는 것을 제한하지 않습니다. 그건 그렇고, 여기서 '_id'인덱스와 다른 인덱스 사이의 차이점은 없다고 들었습니다. 그거 어디서 났어? –

관련 문제