我有一个问题,我有两种文件,其中一种是这样的:
{
"type": "PageType",
"filename": "demo"
"content": "zzz"
}
和另一个像这样:
{
"type": "PageCommentType",
"refFilename": "demo"
"content": "some comment content"
}
我需要发出包含.comments字段的文档,该字段是我在条件PageType文档filename == PageCommentType文档refFilename字段上链接的PageCommentType文档数组。
{
"filename": "demo",
"comments": [{}, {}, {}]
}
有人对如何实施它有任何建议吗?
谢谢。
答案 0 :(得分:4)
您需要查看整理。在同一视图中发出,使用filename
作为键和类型标识符来区分注释和原始内容:
function(doc) {
if (doc.type == "PageType") emit([doc.filename,0],doc.content);
if (doc.type == "PageCommentType") emit[doc.refFilename,1],doc.content);
}
在查找文档demo
及其评论时,请使用startkey=["demo",0]
和endkey=["demo",1]
运行查询:您将获得页面内容,然后是所有评论。
如果您拥有所需的所有数据,但它不是正确的格式,那么您几乎已经完成了。只需编写_list
函数来读取所有行,并使用您需要的结构/模式输出最终的JSON文档。