我正在尝试在cloudant中创建一个二级索引,将多个文档聚合到一个文档中。这就是我所拥有的场景,比如我有一个包含人员地址的Cloudant数据库和属于虚构人John G的三个示例文档如下
{
"id":"xxx",
"Name":"John G",
"Address Type":"H",
"Address":" Home Address blah blah blah"
}
{
"id":"yyy",
"Name":"John G",
"Address Type":"O",
"Address":"Office Address blah blah blah"
}
{
"id":"zzz",
"Name":"John G",
"Address Type":"V",
"Address":"Vacation/Summer house Address blah blah blah"
}
我想在这个数据库上创建一个二级索引/视图,它聚合属于John G的这三个文档,并创建一个如下所示的单个文档
{
"id":"www",
"key":"John G",
"value":
{
"Address_Home":"Home Address blah blah blah",
"Address_Office":"Office Address blah blah blah",
"Address_Summerhouse":"Vacation/Summer house Address blah blah blah"
}
}
请建议我应该如何编写视图/辅助索引来实现此目的。
答案 0 :(得分:0)
您无法按照自己的建议实现自己的建议。视图采用一个文档并仅基于该文档发出数据。你不能做“子查询”。在地图功能中。如果已将一个id存储在另一个中,可以在视图中链接文档(想想外键)。但是,我认为这里的问题是你试图将关系模型转变为Cloudant,这通常是一个坏主意。相反,取消规范化,并将所有三个地址记录存储在同一文档中。如果你来自关系背景,这似乎效率低下 - 但Cloudant没有传统意义上的连接,而原子单元就是文档。