2013-04-19 3 views
0

내 컬렉션이mongodb에 임베드 된 문서 찾기?

{ 
    "name":"" 
    "type":"" 
    "arr":[ 
    { 
    "type":"" 
    "other field" 
    ... 
    }, 
    { 
    "type":"" 
    "other field" 
    ... 
    } 
} 

처럼 내 상태가 입력 매개 변수 이름입니다. 이 때문에 이름을 기준으로 내가 문서를 가져 가지고 한 번 더 조건이 외부 배열이 일치해야합니다 내부 유형입니다 .. 혼자 레코드를 가져 오기 위해 필요 .. 달성하는 방법이

+0

두 개의 쿼리를 사용해야합니다. – Philipp

+0

예. 그러나 그것 없이는 어떤 옵션이 있습니까? – Raj

답변

0

나쁜 성능,하지만 단지 (http://docs.mongodb.org/manual/reference/operator/where)

db.SOME_COLLECTION.find({ 
    name:'SOME_VALUE', 
    $where: 
    function() { 
     for(var i = 0; i < obj.arr.length; i++) { 
     if(obj.arr[i].type==obj.type) { 
      return obj 
     } 
     } 
    } 
    } 
) 

추신 작업 집계 프레임 워크는 유추 문제를 해결했지만,이 경우 imho는 $ where 절만 사용할 수 있습니다.

+0

@khurrum qureshi - field1과 field2의 값을 비교할 때의 주된 문제 –

0

내가 제대로 이해하면, 원하는 결과를 얻을 수있는 방법입니다.

{name:"",type:"",arr.type:""} 

원하는 값을 입력하면 일치하는 모든 레코드가 반환됩니다.

관련 문제