2013-04-01 3 views
0

나는 다음과 같은 조건 임베디드 수집을 조회하고 달성하기 위해 노력하고 있어요 : 내가 몇 가지 자습서를 참조 이해 것에서쿼리 임베디드 컬렉션 MongoDB를 부과 조건 (AND 및 OR)는

A && C || B && C || A && D || B && D

를 쿼리 뭔가해야 이 같은 내용

,

OR 1 케이스 ([case2 AND case3] 또는 [case4 AND case5])

검색어 :

{케이스 가구 1 [{case2, case3}, {case4, case5}]}

내가 쿼리 아래 시도했지만 작동하지 않는 것 같습니다. 도와주세요.

db.hg19_refgene_47.find({ 

       "_id.c" : 1, 
      [ { 
       "_id.p" : {"$gte" : 96978}, 
       "_id.ep" : {"$lte" : 103632} 
       }, 
       { 
       "_id.p" : {"$gte" : 96978}, 
       "_id.ep" : {"$lte" : 103632} 
       }, 
       { 
       "_id.p" : {"$gte" : 96978}, 
       "_id.ep" : {"$lte" : 103632} 
       } 
      ] 

     }) 

답변

1

당신은 $or 연산자를 사용하려고 할 수 있습니다

db.hg19_refgene_47.find({ 
    $or: [ 
    "_id.c" : 1, 
    { 
     "_id.p" : {"$gte" : 96978}, 
     "_id.ep" : {"$lte" : 103632} 
    }, 
    { 
     "_id.p" : {"$gte" : 96978}, 
     "_id.ep" : {"$lte" : 103632} 
    }, 
    { 
     "_id.p" : {"$gte" : 96978}, 
     "_id.ep" : {"$lte" : 103632} 
    } 
    ] 
}) 
0

는 SQL OR 조건으로 동일하게 작동 OR 연산자를 사용합니다. 하위 문서가 항상 elemMatch 연산자를 사용하기를 원할 때 기억해야 할 한 가지 중요한 점은 다른 쿼리가 예상대로 작동하지 않는다는 것입니다.