0

尝试更新现有的 CouchDB 映射函数,使其仅返回过去 24 小时内创建的文档。

现在的地图很简单

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

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

那可能吗?

注意我正在用蒲团构建视图

4

1 回答 1

1

我不知道你是否可以这样做,但如果可以的话,这对 CouchDB 数据库的健全性非常不利。

每次调用同一个文档的映射函数都应该发出相同的值(前提是该文档同时没有更改)。这很重要,因为 CouchDB 将这些发出的数据存储在索引中,并且在必要之前不会再次重新计算它。如果 map 函数可以为同一个文档发出不同的值,那将导致索引不可用。

所以,不,不要尝试。

好消息是,没有它,您可以轻松实现所需的功能。如果您发出创建时间,则可以仅在视图中查询具有特定时间间隔的文档,例如:

/blog/_design/docs/_view/by_date?startkey="2010/01/01 00:00:00"&endkey="2010/02/00 00:00:00"

阅读更多如何在CouchDB The Definitive Guide中查询视图

于 2014-03-20T14:36:17.660 回答