Restheart查询嵌套数组子文档

时间:2017-04-17 19:26:42

标签: arrays mongodb subdocument restheart

我正在与mongodb和restheart合作。

在我的nosql db中,我有一个具有以下结构的唯一文档:

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

              ]  
}

如何构建url-query以获取id为11的用户?

使用mongo shell应该是这样的:

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返回所有文档:userID 11和12.

1 个答案:

答案 0 :(得分:0)

您的请求是针对文档资源的,即网址为http://myHost:port/documents/docID

过滤器查询参数适用于收集请求,即http://myHost:port/documents

等网址

在任何情况下,您都需要投影(查询参数)来限制返回的属性。

您应该使用$elementMatch projection operator通过以下请求(我没有尝试过)来实现它:

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