首页 文章

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

提问于
浏览
1

平台: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 回答

  • 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;
    

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

    最好,

相关问题