2017-04-17 16 views
0

나는 mongodb 및 restheart와 작업 중입니다.중첩 된 배열 하위 문서에 대한 쿼리 다시 시작

{ 
"_id": "docID", 
"users": [ 
      { 
      "userID": "12",     
      "elements": [ 
         { 
          "elementID": "1492446877599", 
          "events": [ 
            { 
             "event1": "one" 
            }, 
            {          
             "event2": "two", 
             } 
            ] 
          } 
       }, 
       { 
      "userID": "11",     
      "elements": [ 
         { 
          "elementID": "14924", 
          "events": [ 
            { 
             "event1": "one" 
            }, 
            {          
             "event2": "two", 
             } 
            ] 
          } 
       } 

       ] 
} 

은 어떻게 ID 11 사용자를 얻기 위해에 URL 쿼리를 구축 할 수 있습니다 : 내 형 NoSQL DB에

내가이 구조의 고유 한 문서가?

db.getCollection('collection').find({},{'users':{'$elemMatch':{'userID':'12'}}}).pretty() 

내가 restheart에 유사한 아무것도 찾을 수 없습니다

사용 몽고는이 같은 뭔가해야 쉘.

누군가 나를 도울 수 있습니까? 이

http://myHost:port/documents/docID?filter={%27users%27:{%27$elemMatch%27:{%27userID%27:%2712%27}}} 

restheart를 사용

나 모든 문서를 반환 : 사용자 ID 11과 12을

답변

0

URL이 http://myHost:port/documents/docID

필터입니다 즉 요청은 문서 자원에 대해입니다 검색어 매개 변수는 수집 요청에 적용됩니다 (예 : http://myHost:port/documents).

반환 된 속성을 제한하려면 투영해야합니다 (keys 쿼리 매개 변수).

당신은 $elementMatch projection operator 사용 (내가 그것을 시도하지 않은) 다음과 같은 요청과 그것을 달성해야

http://myHost:port/documents?keys={"users":{"$elemMatch":{"userID":"12"}}}