CouchDB - 带参数的查询

标签 couchdb

我是 CouchDB 的新手,我知道我的思维方式可能仍然过于关注关系数据库领域,但这里是:

看来 Couch 上的查询都是通过 View 完成的。我读到临时 View 效率非常低,在生产中应该避免。

所以我的问题实际上是如何使用参数进行有效的查询(因为 View 不接受它们)。例如,如果我要使用 Couch 来支持博客网站,我必须为每个帖子创建一个新 View ,相当于“从 id=1 的帖子中选择帖子”。

我知道我可以在查询的同时使用 lucene 对结果执行全文搜索,但这仅对文本内容而不是数字有用。

我很高兴创建大量静态 View ,因为它们可以非常简单地即时创建。我担心这不是 Couch 应该使用的方式,我错过了一些东西。请随时启发我。

干杯,克里斯。

最佳答案

View 确实接受 url 参数,关键是您正在寻找的参数。您甚至可以限制获得的行数并进行排序。

您的 View 可以通过任意 JSON 键进行索引。这意味着您可以创建一个发出文档的 View ,如下所示,[用户名 docid] => doc。然后你可以用 <a href="http://url/to/view?key=[username" rel="noreferrer noopener nofollow">http://url/to/view?key=[username</a> docid] 查询这个 View .

您可以创建一个发出 [用户名类型日期] => doc 的 View 。现在您可以获取特定日期之间的所有文档(使用 startKey 和 endKey url 参数)。

您的博客示例是 CouchDB 特别适合的示例。事实上,我相信这是 O'reilly 即将出版的 CouchDB 书中的一个示例。

也就是说,某些类型的查询无法仅由 CouchDB 轻松处理。 couchdb-lucene 可以在这里提供帮助。不要认为这仅适用于全文搜索。我一直在使用它对数据库运行一般的复杂查询,效果良好。

关于CouchDB - 带参数的查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1271149/

相关文章:

javascript - 在 javascript 中创建 cloudant View 时如何转义冒号和其他特殊字符

javascript - 当降序为 true 时,Couchdb 会反转开始键和结束键

javascript - CouchDB 在 Node.js 中获取用户的所有帖子

lucene - CouchDB Lucene 如何对包含减号 (-) 的查询进行 URL 编码

ios - 在 CouchDB 中删除多个文档

couchdb - 为不同应用程序的 .couchapprc 重新使用 ~/.couchapp.conf 中的密码

javascript - couchdb/cloudant 更新处理程序未按预期工作

jquery - 我可以将 CSS "theme"作为 JSON 文档存储在 CouchDB 中吗? (然后加载并应用它?)

php - 从 Couchdb 返回用户特定数据

node.js 数据库