我的couchbase-db中有一个活动存储桶,我需要检索不同类型的最新文档,我最初的方法是:
文件格式:[id,{val.time,val.type,val.load}]
然后我写了不同的视图来映射一个特定的val.type并且我使用reduce来获取最新的val.time,但是我有视图没有被更新的问题(原因显然Map只在new上调用或者更改文档和这种方法需要映射和减少所有文档。)
Couchbase(NoSQL)数据库中基于时间的数据的最佳实践/方法是什么?
答案 0 :(得分:2)
您可以通过以下简单视图按时访问文档:
将您的时间转换为整数值。例如,使用parse()
方法。 http://www.quackit.com/javascript/javascript_date_and_time_functions.cfm
使用此整数值作为视图的键。然后,您可以访问第一个或最后一个文档。
如果您总是需要最后一个文档,那么否定时间值会更快,因此最大的时间是索引的开头。
答案 1 :(得分:1)
如果您使用的是开发设计文档,则应该在存储桶中添加新密钥可能对视图没有影响。由于只有来自存储桶的密钥子集进入Map / Reduce管道,因此添加不进入子集的密钥将不会触发对视图的更新。
在生产设计文档上进行评估(通过单击"发布"按钮),或尝试添加更多密钥。