2011-03-31 6 views
1

데이터베이스에 "작성자"속성이있는 문서로 많은 "게시물"이 있다고 가정합니다.MongoDB에서이 쿼리를 어떻게 수행합니까?

나는 다음과 같은 쿼리를 실행하려면 :

posts.find(author IN 3, 5, 733, 144, 66, 3457 , 22, 156, 344...) 

Basicaly, 나는 저자가 모든 게시물을 찾아 ..... 다음 백 ID를주고 싶다.

Mongo에서 가장 효율적인 방법은 무엇입니까?

답변

3

사용 몽고의 $in 운영자 : http://www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-%24in

당신도 아마 인덱스 저자 필드해야한다 : 여기

posts.find({"author" : {"$in":[3, 5, 733, 144, 66, 3457 , 22, 156, 344]}}); 

은 기준입니다 posts.ensureIndex({author:1});

+0

이이 효율적인가요? 사람들이 수천 명을 따라 다니면 어떨까요? – TIMEX

+0

@TIMEX - 최근 몇 가지 테스트를 수행했는데, 이는 $ in 절에 값의 수와 관련하여 "감미로운 점"이 있음을 나타냅니다 (즉 값의 양이 적음/쿼리 수가 높고 값이 더 많음/낮음). 쿼리 수) - 자세한 내용은 내 대답을 참조하십시오. http://stackoverflow.com/questions/5157265/is-it-ok-to-query-a-mongodb-multiple-times-per-request/5157425 – AdaTheDev

관련 문제