Couchbase 如何选择字段中包含特定模式的所有文档?
如果我有一组以下类型的文档:Couchbase 如何选择字段中包含特定模式的所有文档?,couchbase,n1ql,Couchbase,N1ql,如果我有一组以下类型的文档: { "contactId": "V1234", "accessMap": { "130134:24": ["RG1234", "RG456"], "12345:45": [".....", "....", ..], ...
{
"contactId": "V1234",
"accessMap": {
"130134:24": ["RG1234", "RG456"],
"12345:45": [".....", "....", ..],
...
},
"documentType"="CONTACT_ACCESS_MAP"
}
如何编写查询以选择access map中存在特定值的文档的所有meta().id
,在本例中为130134:24
我的想法大致如下:
从
access services中为对象名(accessMap)中的n选择n,其中n类似于“130134:24%”和documentType=“CONTACT\u access\u MAP
我假设您的JSON文档实际上是有效的JSON,如下所示:
{
"contactId": "V1234",
"accessMap": {
"130134:24": [
"RG1234",
"RG456"
],
"12345:45": [
".....",
"....",
".."
]
},
"documentType": "CONTACT_ACCESS_MAP"
}
使用OBJECT\u NAMES
是正确的。请在WHERE
子句中使用,如下所示:
SELECT META(s).id
FROM accessservices s
WHERE ANY n IN OBJECT_NAMES(accessMap) SATISFIES n LIKE "130134:%" END;
这是可行的,只是需要稍微调整一下:
从默认值中选择META(s).id作为s,其中OBJECT_name(accessMap)中的任何n都满足n,比如“130134:%”END;