【发布时间】:2021-07-19 22:00:55
【问题描述】:
在沙发上我会有类似的数据
"meta_info": {
"tag1": 584254,
"tag2": 0,
"tag3": 1,
"tag4": 2,
"tag5": 4,
"tag6": 4,
"tag7": 6,
"tag8": 6,
"tag9": 1
}
我想匹配任何以tag 开头的键和值X
有没有办法在 N1QL 查询中做到这一点?
【问题讨论】:
在沙发上我会有类似的数据
"meta_info": {
"tag1": 584254,
"tag2": 0,
"tag3": 1,
"tag4": 2,
"tag5": 4,
"tag6": 4,
"tag7": 6,
"tag8": 6,
"tag9": 1
}
我想匹配任何以tag 开头的键和值X
有没有办法在 N1QL 查询中做到这一点?
【问题讨论】:
我发现 N1QL 查询满足了我的要求:
SELECT meta_info FROM `test-bucket`
where type="result" and any k in OBJECT_PAIRS(meta_info) satisfies k.name like "tag%" and k.val=0 END;
使用弹性索引可以获得更好的性能:
SELECT meta_info FROM `test-bucket` USE INDEX (USING FTS, USING GSI)
where type="result" and any k in OBJECT_PAIRS(meta_info) satisfies k.name like "tag%" and k.val=0 END;
请参阅有关创建弹性索引的文档:https://docs.couchbase.com/server/current/n1ql/n1ql-language-reference/flex-indexes.html
【讨论】: