2013-12-13 2 views
0

의지도에서 찾을 몽고 나는 다음과 같은 DB 구조를 가지고 :봄의 데이터가 DB 값

{ id : "1233454", 
    name : "abc", 
    elements : [ 
     { "1" : { id : "123", referenceId : "567" } }, 
     { "2" : { id : "345" } }, 
    ], 
}, 
{ id : "56789", 
    name : "def", 
    elements : [ 
     { "3" : { id : "123", referenceId : "789" } }, 
     { "4" : { id : "345" } }, 
    ], 
}, 
{ id : "98765", 
    name : "def", 
    elements : [ 
     { "3" : { id : "123", referenceId : "789" } }, 
     { "4" : { id : "345" } }, 
    ], 
} 

을 내가 referenceId이 메서드에 전달 된 매개 변수와 동일하다 문서 ID를 검색해야합니다. 예 : 메서드가 "789"를 받으면 "56789"와 "98765"를 반환해야합니다.

미리 감사드립니다.

+0

'elements'배열 요소의 키에 대한 특정 규칙/스키마가 있습니까? 어떤 문자열이 될 수 있습니까? – chk

+0

id 필드는 문서의 키입니다. "1233454", "56789"및 "98765"는 문서 키입니다. – user1982978

+0

당신은 내 질문을 잘못한 것 같아요, 아래 내 대답을 참조하십시오 ... – chk

답변

1

효율적으로 쿼리하려는 경우 알 수없는 키를 사용하지 않는 것이 좋습니다 (예 : this discussion 참조). elements의 키 (예 : "1")가 특정 구조를 따르거나 제한적일 경우 검색어에 $or이라는 간단한 키를 사용하여 "elements.1.referenceId"과 같은 모든 옵션을 확인할 수 있습니다 (자세한 내용은 here 참조).