CouchDB密钥始终匹配

时间:2011-01-17 01:32:35

标签: couchdb

我希望以这样的方式查询我的CouchDB:文档中的某些字段可以是与任何键请求匹配的通配符。

示例:

function(doc) {
  emit(doc.some_field, doc);
}

?key=100会将文档与 100 some_field some_field 值匹配,例如 *

这可能吗?有没有做到这一点?

2 个答案:

答案 0 :(得分:1)

根据CouchDB documentation,您可以这样做:

?startkey="key"&endkey="key\ufff0"

匹配 *。

答案 1 :(得分:0)

来自Couchdb wiki

  

CouchDB实际存储了   [key,docid]对作为关键   B树。这意味着:

     
      
  • 您始终知道密钥和值来自哪个文档(它在视图结果中显示为“id”字段)
  •   
  • 通过增加docid来查看具有相同键的行。
  •   

所以我不认为用作密钥一部分的通配符字段是可能的,因为它们是有序的。假设它们是可能的。然后,如果您尝试从视图查询键范围,则将返回带有通配符的行以及任何键范围。这意味着它们无处不在。但那是不可能的,因为它们是有序的。这是一个带有通配符的行放在一对其他行之间,其中一行有一个更大的键,另一行是一个更小的键。