0

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

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

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

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

4

2 回答 2

2

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

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

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

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

于 2014-05-20T06:31:06.327 回答
1

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

要么在生产设计文档上评估它(通过单击“发布”按钮),要么尝试添加更多键。

于 2014-06-05T13:00:37.793 回答