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