尝试更新现有的CouchDB地图功能,以便它只返回过去24小时内创建的文档。
当前地图非常简单
function(doc) {
if(doc.email && doc.type == 'user')
emit(doc.email, doc);
}
我想获取当前的linux时间戳值,并将其与存储在doc中的creationTime.unix值进行比较。
这可能吗?
N.B我正在蒲团建造景观
答案 0 :(得分:1)
我不知道你是否能做到这一点,但如果你能做到这一点对于CouchDB数据库的健全性会非常糟糕。
每次调用时,同一文档的地图函数应始终发出相同的值(假设文档的平均时间没有变化)。这很重要,因为CouchDB将此发出的数据存储在索引中,并且在必要时不会再次重新计算它。如果map函数可以为同一个doc发出不同的值,那么会导致索引无法使用。
所以,不,不要试试。
好消息是,如果没有这一点,您可以轻松实现您的需求。如果您发出创建时间,则可以查询视图,仅查找具有创建时间的文档,如下所示:
/blog/_design/docs/_view/by_date?startkey="2010/01/01 00:00:00"&endkey="2010/02/00 00:00:00"
详细了解如何在CouchDB The Definitive Guide
中查询您的观看次数