Restheart 查询嵌套数组子文档
Restheart query for an nested array subdocument
我正在使用 mongodb 和 restheart。
在我的 nosql 数据库中,我有一个具有这种结构的独特文档:
{
"_id": "docID",
"users": [
{
"userID": "12",
"elements": [
{
"elementID": "1492446877599",
"events": [
{
"event1": "one"
},
{
"event2": "two",
}
]
}
},
{
"userID": "11",
"elements": [
{
"elementID": "14924",
"events": [
{
"event1": "one"
},
{
"event2": "two",
}
]
}
}
]
}
我如何构建一个 url 查询以获得 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 returns我所有的文件:用户ID 11和12。
您的请求是针对文档资源的,即 URL 是 http://myHost:port/documents/docID
filter查询参数适用于采集请求,即URL如http://myHost:port/documents
无论如何你都需要投影(keys查询参数)来限制返回的属性。
您应该使用 $elementMatch projection operator:
通过以下请求(我还没有尝试过)来实现它
http://myHost:port/documents?keys={"users":{"$elemMatch":{"userID":"12"}}}
我正在使用 mongodb 和 restheart。
在我的 nosql 数据库中,我有一个具有这种结构的独特文档:
{
"_id": "docID",
"users": [
{
"userID": "12",
"elements": [
{
"elementID": "1492446877599",
"events": [
{
"event1": "one"
},
{
"event2": "two",
}
]
}
},
{
"userID": "11",
"elements": [
{
"elementID": "14924",
"events": [
{
"event1": "one"
},
{
"event2": "two",
}
]
}
}
]
}
我如何构建一个 url 查询以获得 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 returns我所有的文件:用户ID 11和12。
您的请求是针对文档资源的,即 URL 是 http://myHost:port/documents/docID
filter查询参数适用于采集请求,即URL如http://myHost:port/documents
无论如何你都需要投影(keys查询参数)来限制返回的属性。
您应该使用 $elementMatch projection operator:
通过以下请求(我还没有尝试过)来实现它
http://myHost:port/documents?keys={"users":{"$elemMatch":{"userID":"12"}}}