如何 运行 在 couchdb 视图上进行 mango 查询?

How to run a mango query on a couchdb view?

我使用 python 包 couchdb to access a Apache CouchDB

我的任务是从数据库中过滤文档,并能够从过滤后的数据库文档中 select mango query

我为我的数据库定义了一个视图,用于过滤掉不相关的文档。视图的 map 函数是一系列守卫(if 语句 return nothing if fulfilled)。最后一条语句发出带有 key=idvalue=doc:

的文档
function(doc) {
  if(...) {
    return
  }
  emit(doc._id, doc)
}

现在我想使用 mango 查询 select 视图中的一些文档。

但是视图的查找方法不存在。它只存在于数据库对象:

或者不知何故?

如果没有,我如何使用 couchdb 实现过滤器 + 芒果查找?

您不能对视图执行 mango 查询。您必须在这两个选项之间进行选择。

您实施的视图是一种按自定义顺序过滤和排序 文档的方法。然后您可以通过调用视图获取这些文档并获取您定义的确切顺序。

例如,您可以使用 GET / POST /{db}/_design/{ddoc}/_view/{view} endpoint 指定特定范围的文档来获取(通过视图),这要归功于它的参数(主要是 startkeyendkeydescendinglimitskip).

但是您不能对视图执行芒果查询。 Mango 查询只能在整个数据库上进行

在您的情况下,您可能应该使用芒果查询并将 indexes 放在可查询字段上以提高性能。