在开始日期和结束日期之间查询CouchDB文档

Erk*_*Erk 16 couchdb date nosql

我一直在试图弄清楚如何创建一个CouchDB视图,让我查询开始日期大于A且结束日期小于B的所有文档.

这在CouchDB或其他noSQL文档存储中是否可行?我应该废弃它并返回SQL吗?

我只是想尝试SQL相当于:

SELECT*WHERE [start timestamp]> = doc.start AND [end timestamp] <doc.end;

mik*_*eal 8

只需创建一个这样的地图:

function (doc) {emit(doc.timestamp, 1)}
Run Code Online (Sandbox Code Playgroud)

然后查询视图:

?descending=true&limit=10&include_docs=true // Get the latest 10 documents
Run Code Online (Sandbox Code Playgroud)

视图将从最旧到最新排序,因此会descending=true反转该顺序.

如果你想要一个特定的范围.

?startkey="1970-01-01T00:00:00Z"&endkey="1971-01-01T00:00:00Z"
Run Code Online (Sandbox Code Playgroud)

会在1970年为你提供一切.

这些应该有帮助:

  • 这不起作用,因为有两个不同的变量,doc.start和doc.end. (7认同)

Uma*_*ang 1

使用startkeyendkey. 这样您就可以在运行时决定日期范围,而不会减慢查询速度。