怎么做"不等于"在couchdb?

时间:2015-04-16 14:44:30

标签: couchdb

伙计们,我想知道什么是模拟文档和/或地图功能的最佳方法,它允许我“不等于”查询。

例如,我的文件是:

1. { name : 'George' }
2. { name : 'Carlin' }

我想触发一个返回名称不等于'John'的每个文档的查询。

  • 注意:我手头上没有所有可能的名字。所以查询中的参数可以是任何随机文本,例如我的例子中的“John”。

1 个答案:

答案 0 :(得分:0)

简而言之:没有简单的解决方案。

您有四种选择:

  • 发送多范围查询
  • 使用服务器端列表功能过滤视图响应
  • 使用CouchDB插件
  • 使用芒果查询语言

发送多范围查询

您可以使用startkey和endkey定义的两个范围请求视图。您必须选择范围,以便不要求键John

不幸的是,您必须找到某处存在的提交请求,并使用它编译您的CouchDB。它不包括在官方来源中。

使用服务器端列表功能过滤视图响应

不推荐使用它,但您可以使用列表功能并忽略响应中带有键John的行。就像你将使用JavaScript数组一样。

使用CouchDB插件

使用例如创建附加索引CouchDB的,Lucene的。 lucene服务器具有此类查询功能。

使用“芒果”查询语言

它包含在CouchDB 2.0开发人员预览版中。尚未准备好生产,但肯定会包含在稳定版本中。