couchdb - CouchDB 是否支持多范围查询?

标签 couchdb range conditional-statements

CouchDB 中如何实现多范围查询?对于单个范围条件, startkey 和 endkey 组合工作正常,但同样的事情不适用于多范围条件。

我的 View 函数是这样的:

"function(doc){
       if ((doc['couchrest-type'] == 'Item') 
    && doc['loan_name']&& doc['loan_period']&&    
                      doc['loan_amount']) 
     {  emit([doc['template_id'],
          doc['loan_name'],doc['loan_period'],
           doc['loan_amount']],null);}}"

我需要使用 loan_period 获取整个文档> 5 和loan_amount > 30000.我的startkey和endkey参数是这样的:
params = {:startkey =>["7446567e45dc5155353736cb3d6041c0",nil,5,30000],
  :endkey=>["7446567e45dc5155353736cb3d6041c0",{},{},{}],:include_docs => true}  

在这里,我没有得到想要的结果。我认为我的 startkey 和 endkey 参数是错误的。谁能帮我?

最佳答案

CouchDB View 是一个有序的条目列表。对 View 的查询返回该列表的连续切片。因此,不可能应用两个不等式条件。

假设您的loan_period 是一个离散变量,这种情况可能最好通过首先发出loan_period 然后为每个周期发出一个查询来解决。

另一种解决方案是使用 couchdb-lucene。

关于couchdb - CouchDB 是否支持多范围查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1036828/

相关文章:

azure - 如何使用参数在azure devops中使用OR任务条件

pHp 函数 - 测试我的变量是否存在以及是否满足条件

couchdb - Cloudant 跳过参数不起作用

api - 如何从 couchdb REST API 访问 couchbase

regex - 正则表达式 十进制范围 0.1 - 7.0

vba - 从 VBA 复制范围中排除 1 行

javascript - imacros javascript 有条件跳过数据提取

couchdb - 计算某种类型的文档(之前针对用户进行过滤)

content-management-system - couchdb,如何重命名附件

Excel VBA - 对范围内的每个单元格执行函数