1

プラットフォーム: Couchbase Server 4.0 ベータ、Java クライアント 2.1.3

SQL JOIN に似たものを探しています。たとえば、リレーショナル DB のように別のテーブルではなく、field2 がドキュメントに埋め込まれている形式のドキュメントがあります。

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

どうすればこのようなことを達成できますか:

    select * from bucket where field2.key=3;

そして、どうすればキーにインデックスを付けることができますか、仮説的な例:

    create index idx_key on bucket(field2.key);
4

1 に答える 1

1

次のようなことをしたらどうでしょうか。

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

この方法では、ネストされた配列項目の 1 つに値が含まれている限り、それが返されます。

インデックスの作成に関して、セカンダリ インデックスまたはプライマリ インデックスのどちらを作成しようとしていますか? あなたはいつでも次のようなことをすることができます:

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

それがどうなるか教えてください!

一番、

于 2015-07-09T16:34:10.627 に答える