Couchdb-日期范围+多个查询参数
我希望能够在日期之间查询couchdb,我知道这可以用startkey和endkey来完成。它工作得很好,但是否可以像这样进行查询:Couchdb-日期范围+多个查询参数,couchdb,Couchdb,我希望能够在日期之间查询couchdb,我知道这可以用startkey和endkey来完成。它工作得很好,但是否可以像这样进行查询: SELECT * FROM TABLENAME WHERE DateTime >= '2011-04-12T00:00:00.000' AND DateTime <= '2012-05-25T03:53:04.000' AND Status = 'Completed' AND Job_category = 'Installation' 一
SELECT *
FROM TABLENAME
WHERE
DateTime >= '2011-04-12T00:00:00.000' AND
DateTime <= '2012-05-25T03:53:04.000'
AND
Status = 'Completed'
AND
Job_category = 'Installation'
一般来说,在多个字段上建立索引的复杂性随着字段数量的增加而增加 我的主要问题是:状态和职务类别是否也需要动态查询?如果不是,您的观点很简单:
function (doc) {
if (doc.Status === 'Completed' && doc.Job_category === 'Installation') {
emit(doc.DateTime); // this line may change depending on how you break up and emit the datetimes
}
}
视图是相当便宜的,这取决于数据库的大小,所以不要害怕建立几个涵盖不同情况的视图。我希望像Status这样的东西会有一个预定义的可用选项列表,就像Job_类别一样,它似乎与用户输入更相关
如果需要这些字段是动态的,也可以将它们添加到索引中:
function (doc) {
emit([ doc.Status, doc.Job_category, doc.DateTime ]);
}
然后可以使用数组作为开始键。例如:
start_key=["Completed", "Installation", ...]
tl;dr:使用静态视图,其中您有给定字段的预定值列表。虽然可以使用多个字段查询动态视图,但复杂性增长非常快。这正是我想要的,谢谢您的回答。