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

时间:2015-07-09 01:06:43

标签: couchbase n1ql

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

我正在寻找类似于SQL JOIN的东西。例如,我有文件的文件,其中field2嵌入在文档中而不是像在关系数据库中那样在单独的表中:

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

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

    select * from bucket where field2.key=3;

如何为密钥编制索引,这是一个假设的例子:

    create index idx_key on bucket(field2.key);

1 个答案:

答案 0 :(得分:1)

如果您做了类似的事情该怎么办:

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;

让我知道这一切是怎么回事!

最佳,