我想用map / reduce函数创建一个视图,它返回来自几个具有相同id的文档的最新值,似乎我可以返回基于update_datetime的xyz id给出的最新文档,不知道如何获取像field1和field2这样的最新值,谢谢
doc1: id='xyz', field1='v1.0', field2='v2.0', field3='v3.0', status='NEW', update_datetime='2015-04-28'
doc2: id='xyz', field2='v2.1', field3='v3.0', status='CHANGED', update_datetime='2015-05-01'
doc3: id='xyz', field3='v3.1', status='CLOSED', update_datetime='2015-05-10'
使用map / reduce定义一个视图,给定一个键值'xyz',返回以下文档:
id='xyz', field1='v1.0', field2='v2.1', field3='v3.1', status='CLOSED', update_datetime='2015-05-10'.
答案 0 :(得分:0)
我觉得你的数据模型可以改进,但我对你的用例知之甚少。因此,我建议使用reduce函数来执行文档的合并,使用newer作为现有属性的覆盖,除非属性不存在。
以下是map和reduce函数的内容(顺便说一句,我已将其中一个字段的名称从update_datetime
更改为updated
。另请注意id
和{{1不同 - 可能值得将自己的id字段重命名为与couchdb的doc id字段更加明显的字段):
_id
执行1级减少将给出预期的结果。希望它有所帮助。