2016-06-15 5 views
1

주어진 JSON 객체가 들어있는 문서를 어떻게 찾을 수 있습니까?MongoDB의 문서를 일치하는 객체로 검색

예 :

{ 
    "componentType": "PivotTable", 
    "properties": { 
     "tags": ["tag1"] 
    } 
} 
: 지금 값으로 설정 부분 키 문서 만 identification 부를 소정

{ 
    "identification": { 
    "componentId": "3a4f6199-6141-4179-ac5f-f1bbcf627bb2", 
    "componentType": "PivotTable", 
    "dataDate": "2016-06-15T15:29:51.139+0200", 
    "dataType": "PTF", 
    "properties": { 
     "contextId": "0329fe70-92f0-4b60-b3c2-79377adb8f95", 
     "tags": ["tag1", "tag2"] 
    } 
    }, 
    "viewData": { 
    "lineGroups": [] 
    } 
} 

:

데이터베이스 test이 같은 문서가 있다고 가정

위의 문서의 식별 부분이 지정된 ID와 일치하므로 해당 문서를 반환해야합니다.

내가 db.test.find({identification: {/*the given identification segment*/}}) 일 경우 mongodb는 문서의 모든 항목을 정확하게 확인하여 식별 부분을 직접 비교합니다. 이 경우 해당 문서는 반환되지 않습니다.

mongodb 쿼리 언어에서 비교적 간단하고 쉬운 방법으로이 작업을 수행 할 수 있습니까? 또는 쿼리를 생성하기 위해 Identification 객체의 항목을 반복적으로 파싱해야합니까?

답변

0

몽고는 WHOLE 속성 하위 문서 과 일치하려고하므로이 경우 우리는 1 : 1 문서를 제공해야합니다.

이 작업을 수행하는 방법은 모든 요소를 ​​풀고 쿼리 필터 섹션에 추가하는 것입니다.

{ 
    "componentType": "PivotTable", 
    "properties.tags": {$in:["tag1"]}  
} 
+0

이렇게이 방법으로 하위 텍스트의 항목을 구문 분석하여 쿼리 문자열을 구성해야합니다. 더 쉬운 방법은 없습니까? 하위 문서 구조가 복잡해질 때 (다른 유형의 값을 가진 다른 하위 문서 포함) 쿼리를 생성하는 것이 쉽지 않습니다. – qingl97

+0

예 ..... 그 게임입니다 :-) – profesor79

+0

@ qingl97 내 대답이 도움이된다면 동의하십시오. http://stackoverflow.com/help/accepted-answer – profesor79

관련 문제