我有一个 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/