Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Couchbase 如何选择字段中包含特定模式的所有文档?_Couchbase_N1ql - Fatal编程技术网

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;