如何在Couchbase存储桶中获取最新文档?

How to get the latest document in couchbase bucket?

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

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

然后我写了不同的视图来映射一个特定的val.type,我使用reduce来获取最新的val.time,但是我遇到了视图未更新的问题(这显然是因为Map仅在new或change上调用文档,并且此方法需要映射和缩减所有文档。)

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


您可以使用以下简单视图按时间访问文档:

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

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

  • 如果您始终需要最后一个文档,则取消时间值的速度会更快,因此最大的时间在索引的开头。


  • 如果您使用的是开发设计文档,则预期将新的密钥添加到存储桶中可能不会对视图产生影响。由于只有存储桶中的一部分键会进入Map / Reduce管道,因此添加不进入该子集的键不会触发视图更新。

    要么在生产设计文档上对其进行评估(通过单击"发布"按钮),要么尝试添加更多键。