将参数传递到couchbase视图

时间:2013-02-06 11:43:14

标签: views couchbase

我正在寻找一个桶中的特定JSON文档,我不知道它的文档ID,我所知道的是其中一个子键的值。我查看了API文档,但在涉及我的特定用例时仍然感到困惑:

在mongo中我可以进行动态查询,如:

bucket.get({ "name" : "some-arbritrary-name-here" })

使用couchbase我的印象是你需要创建一个索引(例如在name属性上)并使用startKey / endKey但这感觉不对 - 你最终还是会返回多个文件吗?能够将参数传递给可以执行完全匹配的视图会很高兴。我们如何处理多维搜索?即姓名和类别。

我想在couchbase实例上尽可能多地进行过滤,理想情况下将其缩小到一条记录,而不是在返回App Tier时进行过滤。类似于将动态值传递给映射函数并仅发出匹配的文档。

我知道你可以使用LINQ和couchbase进行过滤,但是如果我正确地阅读了文档,那么这个过滤仍然在客户端完成,但至少如果我们可以将返回的数据集缩小到合理的子集,客户端过滤不会这样是一件大事。

干杯

1 个答案:

答案 0 :(得分:0)

所以你在某一点上是正确的,你需要创建一个视图(确实是一个索引)才能查询JSON文档的内容。

因此,在您的情况下,您必须使用此类代码创建视图:

function (doc, meta) {
 if (doc.type == "youtype") { // just a good practice to type the doc
   emit(doc.name);
 }
}

因此,这将创建一个索引 - 分布在群集的所有节点上 - 您现在可以在应用程序中使用它。您可以使用“key”参数

指向特定值