Couchdb-日期范围+多个查询参数

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' 一

我希望能够在日期之间查询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'

一般来说,在多个字段上建立索引的复杂性随着字段数量的增加而增加

我的主要问题是:状态和职务类别是否也需要动态查询?如果不是,您的观点很简单:

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:使用静态视图,其中您有给定字段的预定值列表。虽然可以使用多个字段查询动态视图,但复杂性增长非常快。

这正是我想要的,谢谢您的回答。