如何在couchbase桶中获取最新文档?

时间:2014-05-19 23:28:58

标签: couchbase couchbase-lite couchbase-view nosql

我的couchbase-db中有一个活动存储桶,我需要检索不同类型的最新文档,我最初的方法是:

文件格式:[id,{val.time,val.type,val.load}]

然后我写了不同的视图来映射一个特定的val.type并且我使用reduce来获取最新的val.time,但是我有视图没有被更新的问题(原因显然Map只在new上调用或者更改文档和这种方法需要映射和减少所有文档。)

Couchbase(NoSQL)数据库中基于时间的数据的最佳实践/方法是什么?

2 个答案:

答案 0 :(得分:2)

您可以通过以下简单视图按时访问文档:

  1. 将您的时间转换为整数值。例如,使用parse()方法。 http://www.quackit.com/javascript/javascript_date_and_time_functions.cfm

  2. 使用此整数值作为视图的键。然后,您可以访问第一个或最后一个文档。

  3. 如果您总是需要最后一个文档,那么否定时间值会更快,因此最大的时间是索引的开头。

答案 1 :(得分:1)

如果您使用的是开发设计文档,则应该在存储桶中添加新密钥可能对视图没有影响。由于只有来自存储桶的密钥子集进入Map / Reduce管道,因此添加不进入子集的密钥将不会触发对视图的更新。

在生产设计文档上进行评估(通过单击"发布"按钮),或尝试添加更多密钥。