在Couchbase视图中连接文档

在Couchbase视图中连接文档,couchbase,Couchbase,Couchbase/NOSQL上的Noob问题: 我有两种不同类型的文档,它们之间有一个公共字段,我想使用基于该公共字段的视图来连接它们: 文件1-关键字:第1页 { "URL": "/someurl/", "title": "some title" } 文件2键:区域_对象1 { "URL": "/someurl/", "zone": "some Ad zone" " } 有人能帮我加入这两个文档并返回一个加入的文档(使用view?)吗?基于“url”字段,这两个文

Couchbase/NOSQL上的Noob问题:

我有两种不同类型的文档,它们之间有一个公共字段,我想使用基于该公共字段的视图来连接它们:

文件1-关键字:第1页

{
  "URL": "/someurl/",
  "title": "some title"  
}
文件2键:区域_对象1

{
  "URL": "/someurl/",
  "zone": "some Ad zone"
  "
}

有人能帮我加入这两个文档并返回一个加入的文档(使用view?)吗?基于“url”字段,这两个文档位于同一个桶中。

根据Couchbase文档,严格意义上这是不可能的

但是您可以像这样定义视图

if (doc.type == "page") {
   emit (doc.url, doc.title)
} else if (doc.type == "zone") {
   emit (doc.url, doc.zone)
}
现在,当查询给定url的此视图时,您将获得这两个信息


如果您有可用的N1QL,您将获得适当的连接机制。

根据Couchbase文档,严格意义上讲,这是不可能的

但是您可以像这样定义视图

if (doc.type == "page") {
   emit (doc.url, doc.title)
} else if (doc.type == "zone") {
   emit (doc.url, doc.zone)
}
现在,当查询给定url的此视图时,您将获得这两个信息


如果你有可用的N1QL,你会得到一个合适的连接机制。

实际上,我想发布的视图代码不会起作用

正确的做法是:

if (doc.title) {
   emit (doc.url, doc.title)
} else if (doc.zone) {
   emit (doc.url, doc.zone)
}
这是真的

如果您有可用的N1QL,您将获得适当的连接机制


事实上,我猜发布的视图代码将不起作用

正确的做法是:

if (doc.title) {
   emit (doc.url, doc.title)
} else if (doc.zone) {
   emit (doc.url, doc.zone)
}
这是真的

如果您有可用的N1QL,您将获得适当的连接机制