Date 在开始日期和结束日期之间查询CouchDB文档
我一直在想如何创建一个CouchDB视图,让我可以查询所有开始日期大于a、结束日期小于B的文档 这在CouchDB或其他noSQL文档存储中可能吗?我应该放弃它并返回SQL吗 我只是想做SQL等效的工作:Date 在开始日期和结束日期之间查询CouchDB文档,date,couchdb,nosql,Date,Couchdb,Nosql,我一直在想如何创建一个CouchDB视图,让我可以查询所有开始日期大于a、结束日期小于B的文档 这在CouchDB或其他noSQL文档存储中可能吗?我应该放弃它并返回SQL吗 我只是想做SQL等效的工作: 选择*其中[start timestamp]>=doc.start和[end timestamp]
选择*其中[start timestamp]>=doc.start和[end timestamp]
function (doc) {emit(doc.timestamp, 1)}
然后使用以下命令查询视图:
?descending=true&limit=10&include_docs=true // Get the latest 10 documents
视图将从最早到最晚排序,因此descending=true
颠倒顺序
如果你想要一个特定的范围
?startkey="1970-01-01T00:00:00Z"&endkey="1971-01-01T00:00:00Z"
在1970年你会得到一切
这些措施应有助于:
function (doc) {
var key = [doc.start, doc.end]
emit(key, doc)
}
然后,要获取开始日期大于1970-01-01T00:00:00Z且结束日期小于1971-01-01T00:00:00Z的文档,请使用查询
?startkey=["1970-01-01T00:00:00Z", ""]&endkey=["\ufff0", "1971-01-01T00:00:00Z"]
我在寻找同样的东西,偶然发现了这个问题。使用CouchDB 2.0或更高版本,您可以使用,包括大于和小于 mango查询可能如下所示:
"selector": {
"effectiveDate": {
"$gte": "2000-04-29T00:00:00.000Z",
"$lt": "2020-05-01T00:00:00.000Z"
}
}
重复,看@PartlyCloudy我不明白这个问题是怎么重复你的问题的。您的问题在某个范围内以固定的间隔生成一系列事件,而这是为了找到某个范围内的所有值。我可能只是错误地使用了你的解决方案,但我不这么认为。这不起作用,因为有两个不同的变量,doc.start和doc.end。你给出了一个anon函数作为答案,但它完全脱离了上下文,因为你没有说在哪里或如何放置它,或将它分配给什么,或如何或如何调用它。我的意思是,我是否将其分配给文档中的var?我是否将其放置在文件中,但未指定?也许它根本就不在医生里?谁知道呢。所有的ApacheWiki链接都已经腐烂了。结束键的第一部分在这里有什么魔力?“\ufff0”是否等于无限未来中的某个日期?@noah如果开始日期匹配,则似乎不会过滤掉结束日期部分,因此使用结束键