CouchDB-映射函数中的变量

CouchDB - Variables in map function

本文关键字:变量 映射函数 CouchDB-      更新时间:2023-09-26

我是CouchDB的新手,有一个非常基本的问题:

是否有可能将变量从客户端传递到映射函数中,例如:

function (doc, params) {
    if (doc.property > params.property) emit(doc, null);
}

谢谢你的帮助,Christian

虽然Dominic的答案是正确的,但实际问题中的示例可能可以实现为具有适当键和包含startkey的查询的映射函数。因此,如果你想要你在示例中显示的功能,你应该将你的视图更改为:

function(doc) {
  if( doc.property )
    emit( doc.property, null);
}

然后你的查询会变成:

/db_name/_design/view_doc/_view/view_name?startkey="property_param"&include_docs=true

这会告诉你你的例子表明你在追求什么。

这是使用CouchDB的关键(双关语很有趣):创建视图,允许您使用keykeysstartkey和/或endkey 的某些组合基于该键选择视图的子集

不,映射函数应该创建始终接受相同输入并产生相同输出的索引,这样它们就可以保持增量。(和快速)

如果需要对视图的结果进行某种过滤,可以考虑使用_list函数,因为它可以接受客户端提供的查询字符串变量,并在它们的转换中使用它们。