【发布时间】:2015-04-24 18:20:13
【问题描述】:
可以在 map 或 reduce 函数中使用 Date.now 类型的函数吗?它可以在任何地方使用吗? 更具体地说,视图不得缓存 Date.now 值。 这是我测试过的,仅在更改任何视图功能后的第一次运行时才有效:
function (doc){
var n = new Date();
if(doc.TimeStamp > n.getTime() - 30000){
emit(doc._id, doc);
}
}
【问题讨论】:
-
我认为这个问题的答案实际上是“Date()”是一次性的。所以在视图的映射函数中,它在视图索引期间调用映射时调用。我认为 recude() 函数也是如此,所以答案可能是否定的,除非我们同意它是一次性的,否则不能使用 Date()。我最初的意图是获取超过 30 秒的文档(例如)。我使用了 startKey 机制来做到这一点,通过 emit(doc.TimeStamp, doc.usefulField);现在时间戳是关键,可以顺序查询。