CouchDB密钥始终匹配
我希望以这样一种方式查询我的CouchDB:文档中的某些字段可以是匹配任何键请求的通配符 例如:CouchDB密钥始终匹配,couchdb,Couchdb,我希望以这样一种方式查询我的CouchDB:文档中的某些字段可以是匹配任何键请求的通配符 例如: 功能(doc){ 发出(单据部分字段,单据); } ?key=100将匹配某些字段为100的文档和某些字段值如* 这可能吗?有没有黑客可以这么做?来自Couchdb: CouchDB实际上存储 [key,docid]配对作为 B树。这意味着: 您总是知道键和值来自哪个文档(它在视图结果中显示为“id”字段) 查看键相等的行,按增加docid排序 因此,我认为作为键的一部分使用通配符字段是不可能
功能(doc){
发出(单据部分字段,单据);
}
?key=100
将匹配某些字段为100的文档和某些字段值如*
这可能吗?有没有黑客可以这么做?来自Couchdb:
CouchDB实际上存储
[key,docid]配对作为
B树。这意味着:
- 您总是知道键和值来自哪个文档(它在视图结果中显示为“id”字段)
- 查看键相等的行,按增加docid排序
?startkey="key"&endkey="key\ufff0"
匹配键*是的,我想如果有什么方法可以做一个OR,尽管那会奏效。比如100或*。我可能必须使用couchdb-lucene。使用两个请求可以作为解决方法:第一个请求密钥(?key=100),第二个请求通配符行。如果课程为通配符,则需要有相邻的键。说这一切都是可能的:)@Jan如果我正确理解了这个问题,那么我的答案-1是多余的。然而,我应该提到这种基于排序的技巧。如果我搞错了,请参阅我答案的注释。不确定如何删除-1。如果我正确理解了问题,作者不希望查询带有通配符。他需要视图的行在其键中包含通配符。OT:谢谢你在couchdb上的工作,等等:)好的,我需要任何传入的密钥来匹配存储在数据库中的某个通配符密钥。我知道这听起来很奇怪。。。但是包管理器可以要求为系统属性X、Y和Z编译所有包,但是有些包是通用的,可能在X和Y上匹配,但没有Z,但是它们的通用字段标记为*。啊,对不起,我当时误解了这个问题。如果您的POST正文如下所示,您可以使用对视图的POST请求来获取多个键的逻辑OR:
{“keys”:[“key1”、“key2”,…]}
请参见Hmm,因此如果我能够以某种方式将其与开始键和结束键结合起来,这实际上是可行的。因为我还需要在键中使用通配符但我猜你,简,已经知道了:)