我正在尝试创建一个沙发基本视图,用于检索尚未更新超过一个月的所有视图的ID。 他们的密钥也不应该包含字符串ID:
function (doc, meta) {
if (meta.id.indexOf("ID") == -1) {
var currentDate = new Date();
var currentDateInMillis = currentDate.getTime();
if (doc.lastTimestampMillis != null && doc.lastTimestampMillis < (currentDateInMillis - (30 * 24 * 60 * 60 * 1000))) {
emit(meta.id, meta.id)
}
}
}
请注意,我的文档中有lastTimestampMillis字段。
嗯,这段代码不起作用。
答案 0 :(得分:2)
不是在视图代码中实现日期检查逻辑,而是发出doc.lastTimestampMillis
,然后查询所需的日期。例如。 query.endkey(<now - 30d>)
将为您提供最多30天前的所有时间戳。由于发布的值仅在文档更改时更新,因此您编写的视图几乎立即变为陈旧。只发出时间戳的好处是可以让您查询任何日期范围,以及实时反映正确的时间戳。