我目前正在尝试创建一个视图和查询以适合此SQL查询:
SELECT * FROM articles
WHERE articles.location="NY" OR articles.location="CA"
ORDER BY articles.release_date DESC
Run Code Online (Sandbox Code Playgroud)
我试图用复杂的密钥创建一个视图:
function(doc) {
if(doc.type == "Article") {
emit([doc.location, doc.release_date], doc)
}
}
Run Code Online (Sandbox Code Playgroud)
然后使用startkey和endkey检索一个位置并在发布日期对结果进行排序.
.../_view/articles?startkey=["NY", {}]&endkey=["NY"]&limit=5&descending=true
Run Code Online (Sandbox Code Playgroud)
这很好用.
但是,如何将多个启动键和结束键发送到我的视图以模仿
WHERE articles.location="NY" OR articles.location="CA" ?
我的主要克星,多米尼克,是对的.
此外,永远不可能按标准A查询,然后按CouchDB中的标准B排序.为了解决这种不便,CouchDB保证了可扩展,可靠,对数的查询时间.你有一个选择.
_list函数中对服务器端进行排序.这很棒,但请记住它不是最终可扩展的.如果你有数百万行,该_list函数可能会崩溃.简而言之,您目前无法使用多个startkey/endkey组合.
您要么必须进行2次单独查询,要么始终可以添加lucene搜索引擎以获得更强大的搜索功能.
它是可以使用多个key查询中的参数.有关多文档提取的信息,请参阅Couchbase CouchDB文档.
| 归档时间: |
|
| 查看次数: |
6307 次 |
| 最近记录: |