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/