Couchbase N1QL:数组字段的索引和查询

Couchbase N1QL: index and query on array fields

平台:Couchbase Server 4.0 beta,Java客户端 2.1.3

我正在寻找类似于 SQL JOIN 的内容。例如,我有这样一种形式的文档,其中 field2 嵌入到文档中,而不是像在关系数据库中那样嵌入到单独的 table 中:

    {field1:" ..", field2:[{key:1, ...},{key:3, ...},..],...}.

我怎样才能实现这样的目标:

    select * from bucket where field2.key=3;

以及如何索引键,一个假设的例子:

    create index idx_key on bucket(field2.key);

如果你做了这样的事情会怎样:

SELECT 
    *
FROM `your-bucket-here` AS fields
WHERE 
    ANY field IN fields.field2 SATISFIES field.key = 3 END

这样只要一个嵌套的数组项包含你的值,它就会被返回。

在创建索引方面,您是要创建二级索引还是一级索引?你总是可以这样做:

CREATE PRIMARY INDEX index_name ON `your-bucket-name-here` USING GSI;
CREATE INDEX index_name ON `your-bucket-name-here` USING GSI;

告诉我一切进展如何!

最佳,