couchdb - 如何在couchdb查询中实现 "partial match"

标签 couchdb

我有一个 Couchdb,用于存储每个文档,每个文档都有一个前缀字段。前缀是唯一的,因此它们实际上可以用作 ID

说:


_id=1 {prefix="AAABBBCCC", ...}
_id=2 {prefix="AAABBBDDD", ...}
_id=3 {prefix="AAABBE", ...}
_id=4 {prefix="AAAFF", ...}

我需要使用更长但完全匹配前缀的键来查询这些文档,检索适当的文档(始终与前缀完全匹配)。前缀长度不同, key 长度恒定。


query_key = AAABBBCCC123 => _id1
query_key = AAABBBDDD456 => _id2
query_key = AAABBEEEEEEE => _id3
query_key = AAABxxxxxxxx => Null

知道如何在 Couch 中完成此操作吗?

最佳答案

创建一个发出doc.prefix的 View 。然后按降序查询,并将 startkey 设置为您的查询键,并使用 limit=1 进行查询。生成的前缀可能是您的,但您必须确认。

您可以在客户端中确认前缀,也可以使用 _list 函数确认。 _list 函数可能对性能没有帮助,因此我会考虑在客户端中执行此操作,除非您有多种语言的多个客户端,并且可以在单个 URL 上进行标准化使用相同的输出进行查询。

关于couchdb - 如何在couchdb查询中实现 "partial match",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4803610/

相关文章:

couchdb - "merge"查看整理成 CouchDB 中有用的输出

mongodb - 带有Nosql数据库的dart身份验证系统

couchdb - 使用 jsonp 响应将数据添加到 couchdb

json - 将 json 文件导入沙发 db-

CouchDB 查看设计文档中的默认选项不起作用

database - NoSQL 数据库中的全文搜索

authorization - 我应该使用什么角色以编程方式在 Cloudant/BigCouch/CouchDB 中创建和删除数据库?

memory-leaks - CouchDB 内存泄漏 - 性能问题

couchdb - 使用 fauxton 在 CouchDb 中编辑 `local document`

mongodb - 适用于 Google Reader 等应用的 NoSQL 架构