跨越多个桶的 N1QL 查询

N1QL query spanning multiple buckets

两个 Couchbase 相关问题...

  1. 我在 Couchbase 4.0 RC0 上使用 Java SDK 2.2.0 来 运行 一些连接多个存储桶的 N1QL 查询。在Java SDK中,query是bucket接口暴露的一个功能。因此,如果我想 运行 一个 N1QL 查询加入多个桶,我应该为哪个桶获取句柄(即调用 Cluster.openBucket(...) 时我应该传递哪个桶名称)。将插入、更新插入、删除等操作绑定到存储桶是有意义的,因为它们处理存储桶中的文档,但查询不应该更通用吗?
  2. CouchbaseCluster.create() 和 Cluster.disconnect() 是否创建了必要的集群连接?如果是这样,打开和关闭存储桶有什么作用?
  1. 与 API 中的其他操作相比,N1QL 与 Bucket 的联系确实少了一点,但我们还是在那里添加了查询方法,因为我们认为大多数人已经在使用SDK 习惯于处理 Bucket 并且很多 N1QL 用例可能只会跨越 1 个桶。

但是要回答您的问题,使用哪个 Bucket 参考并不重要,两者都可以。

  1. Cluster.create() 会将种子节点列表编译为 bootstrap 并准备 ConfigurationManager,以便 SDK 可以从集群接收更新。调用openBucket.
  2. 时完成了实际的连接、身份验证舞蹈和主要资源的建立。