2013-01-07 2 views
0

기본적으로 최종 목표는 모든 내 DB 쿼리에 기본 범위를 제공하는 것입니다. 즉, 모든 쿼리를 개체 ID 집합으로 제한해야합니다. 내 질문은 ID로 쿼리를 수행하고 쿼리가 내 개체 ID 목록으로 제한되는지 어떻게 확인할 수 있습니까?

나는 같은 것을 할 싶습니다 당신이 볼 수 있듯이 조회 된 ID가 개체 ID의 배열에 $ 아니므로

db.posts.findOne({_id: ObjectId("50eb4a874947fb00e3cc0612")}) 
     .where({_id: { $in: [ObjectId("50eb4a874947fb00e3cc0610"),ObjectId("50eb4a874947fb00e3cc0611")] }}); 

이 쿼리는 어떤 결과를 반환해야합니다.

, BTW 위의 쿼리는 나에게 말하는 오류를 제공 db.posts.findOne({_id: ObjectId("50eb4a874947fb00e3cc0612")}).where is not a function (shell):1

답변

1

이 정말 이상한 소리를하지만 같은 $and (http://docs.mongodb.org/manual/reference/operators/#_S_and) 결합하는 두 개의 절을 시도 할 수 있습니다 :

db.col.find({ 
    $and:[ 
     {_id: ObjectId("50eb4a874947fb00e3cc0612")}, 
     {_id: { 
      $in: [ 
       ObjectId("50eb4a874947fb00e3cc0610"), 
       ObjectId("50eb4a874947fb00e3cc0611") 
      ] 
     }} 
    ] 
}); 

하나 즉를 나는 이것을 믿는다.

관련 문제