Couchbase 查看超过一个月的文件
Couchbase view documents older than one month
我正在尝试创建一个 couchbase 视图,它检索所有超过一个月未更新的视图的 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 字段。
嗯,这段代码不起作用。
不是在视图代码中实现日期检查逻辑,而是发出 doc.lastTimestampMillis
然后查询您想要的日期。例如。 query.endkey(<now - 30d>)
将为您提供最多 30 天前的所有时间戳。由于发出的值仅在文档更改时更新,因此您编写的视图几乎立即变得陈旧。仅发出时间戳的优点是可以让您查询任何日期范围,并且实际上始终反映正确的时间戳。
我正在尝试创建一个 couchbase 视图,它检索所有超过一个月未更新的视图的 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 字段。
嗯,这段代码不起作用。
不是在视图代码中实现日期检查逻辑,而是发出 doc.lastTimestampMillis
然后查询您想要的日期。例如。 query.endkey(<now - 30d>)
将为您提供最多 30 天前的所有时间戳。由于发出的值仅在文档更改时更新,因此您编写的视图几乎立即变得陈旧。仅发出时间戳的优点是可以让您查询任何日期范围,并且实际上始终反映正确的时间戳。