Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
View CouchDB多级视图映射功能?_View_Couchdb - Fatal编程技术网

View CouchDB多级视图映射功能?

View CouchDB多级视图映射功能?,view,couchdb,View,Couchdb,我不太确定我要实现的目标应该叫什么,但我会尽可能多地解释。我正试图使用视图来从像层次结构一样相关的单独文档返回信息。例如,我有这三份文件 { "_id" : "line_2c7e12d1", "docType" : "Line", "lineNumber": 30, "pageId" : "page_89bdd679f" } { "_id" : "page_89bdd679f", "docType" : "Page", "pageNumber" : 65, "b

我不太确定我要实现的目标应该叫什么,但我会尽可能多地解释。我正试图使用视图来从像层次结构一样相关的单独文档返回信息。例如,我有这三份文件

{
  "_id" : "line_2c7e12d1",
  "docType" : "Line",
  "lineNumber": 30,
  "pageId" : "page_89bdd679f"
}

{
  "_id" : "page_89bdd679f",
  "docType" : "Page",
  "pageNumber" : 65,
  "bookId" : "book_3684caa2b"
}

{
  "_id" : "book_3684caa2b",
  "docType" : "Book",
  "bookName" : "Some Book Title",
}
我希望能够创建一个视图,允许根据行id(多级层次结构)从中查找有关书籍的信息

例如,对于View Map函数,类似这样的内容

function (doc) {
  if(doc.docType == 'Line'){
    emit([doc._id, 1], doc.lineNumber)
    emit([doc._id, 2], {_id : doc.pageId})
    emit([doc._id, 3], {_id : doc.pageId}.pageNumber)
    emit([doc._id, 4], {_id : {_id : doc.pageId}.bookId})
  }
}
我知道前两条发射线工作正常,但后两条不正常。我只是想知道这种功能在CouchDB中是否可行,或者我是否应该以不同的方式构建数据。(包括最低级别的所有层次结构信息,以便可以向上搜索)。或者如果有人有任何其他建议


感谢Callum

您似乎试图在视图中包含相关文档中的信息。在地图功能中,您只能访问当前文档,不能查询数据库中的任何其他文档

按照这种方法,您可以获得一种“连接”功能


您的数据结构保持着强烈的关系风格,这对于CouchDB(一种面向文档的数据库)来说不是最好的方法。

谢谢Juanjo,链接的问题帮助我解决了如何实现我所寻找的。我的实际数据并不像上面所示的那样关系密切,但这是我能想到的最简单的例子。我发现链接答案中给出的这个链接作为示例实现非常有用。