2017-04-17 12 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に

私はこのような構造を持つユニークな文書がありますか?

Mongoのは、それはこの1つのようなものでなければなりませんシェルの使用:私はrestheartに似た何かを見つけることができません

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

誰かが私を助けることができますか?この

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など)に適用されます。

返されるプロパティを制限するには、いずれの場合でも投影する必要があります(キークエリパラメータ)。

あなたは$elementMatch projection operatorを使用して、次の要求(私はそれを試していない)でそれを達成する必要があります

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

関連する問題