how to create index on array field我的示例文档是
{
"name": [ {
"family": "Smith",
"given": [
"Kam"
],
"prefix": [
"Mrs."
],
"use": "official"
},
{
"family": "Johns",
"given": [
"Kam"
],
"use": "maiden"
}
]
}
我想写一个关于家庭和给定字段...How的搜索查询(如),以创建索引并建议查询..Im新到couchbase
发布于 2018-06-21 19:14:42
这个查询选择了姓氏为"Smith“、给定名称为”Kam“的客户:
select * from customer
where any n in name satisfies n.family = 'Smith' and
any fn in n.given satisfies fn = 'Kam' end end
注意,由于在数据中使用了嵌套数组,因此使用了嵌套的ANY子句。
然后,可以为族名称创建索引,如下所示:
CREATE INDEX customer_name ON customer
( DISTINCT ARRAY n.family FOR n IN name END)
索引在没有任何提示的情况下使用。通过将EXPLAIN添加到查询的开头,您可以看到它正在被使用。这将在JSON中得到一个包含索引扫描操作符的查询计划。
您可以在此处了解有关数组索引的更多信息:https://developer.couchbase.com/documentation/server/current/n1ql/n1ql-language-reference/indexing-arrays.html
https://stackoverflow.com/questions/50965292
复制相似问题