如何在couchdb查询中实现“部分匹配”

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

说:


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

我需要查询这些文档,使用更长但完全匹配前缀的密钥检索适当的文档(始终在前缀上完全匹配).前缀长度不同,密钥长度不变.


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

知道怎么能在Couch做到这一点?

最佳答案 制作一个发出doc.prefix的视图.然后使用start =设置为查询键,使用limit = 1查询降序.结果前缀可能是您的,但您必须确认.

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

点赞