2017-09-30 1 views
0

다음 구조를 가진 문서가 있습니다. 예를 들어 $ regex를 사용하여 "^raw_ "(raw_ 요소의 많은 변형이있을 수 있기 때문에)?정규식 (또는 몽고와 비슷한)을 사용하여 문서의 특정 하위 요소를 가장 잘 검색하는 방법

간단한 투영으로 모든 "위치"요소를 쉽게 반환 할 수 있지만 raw_로 시작하는 요소를 추출 할 수없는 경우 (문서의 예제를 보면) $ elemMatch의 몇 가지 변형이지만 많은 행운이 없음).

어떻게 든 가능합니까? 그렇다면 누군가가 예제를 제공 할 수 있습니까?

{ "_id": '1', "positions": { "raw_1": { "123": 125.30, "456": 125.30, "789": 125.30, }, "raw_2": { "123": 125.30, "456": 125.30, "789": 125.30, }, "calc_1": { "123": 125.30, "456": 125.30, "789": 125.30, }, "calc_2": { "123": 125.30, "456": 125.30, "789": 125.30, } } }

답변

0

나는 그것이 가능 $ 정규식과 문서 키에 대해 조회 할 수 있다고 생각하지 않습니다. 이 문서 구조를 조정할 수 있다면, 나는 다음과 같은 제안 :

db.col1.find({ "_id" : "1" },{ "positions.raw" : true }); 
:

{ 
    "_id": "1", 
    "positions": { 
     "raw": [ 
      { 
       "entry": "1", 
       "values": { 
        "123": 125.30, 
        "456": 125.30, 
        "789": 125.30, 
       } 
      }, 
      { 
       "entry": "2", 
       "values": { 
        "123": 125.30, 
        "456": 125.30, 
        "789": 125.30, 
       } 
      } 
     ], 
     "calc": [ 
      { 
       "entry": "1", 
       "values": { 
        "123": 125.30, 
        "456": 125.30, 
        "789": 125.30, 
       } 
      }, 
      { 
       "entry": "2", 
       "values": { 
        "123": 125.30, 
        "456": 125.30, 
        "789": 125.30, 
       } 
      } 
     ] 
    } 
} 

이 구조 감안할를, 단지 원시 항목에 관심이를 반환하는 것이 훨씬 더 쉽다

관련 문제