在CouchDB映射函数中使用linux时间戳

时间:2014-03-19 12:32:01

标签: couchdb couchdb-futon

尝试更新现有的CouchDB地图功能,以便它只返回过去24小时内创建的文档。

当前地图非常简单

function(doc) {
    if(doc.email && doc.type == 'user') 
    emit(doc.email, doc);
}

我想获取当前的linux时间戳值,并将其与存储在doc中的creationTime.unix值进行比较。

这可能吗?

N.B我正在蒲团建造景观

1 个答案:

答案 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

中查询您的观看次数