dynamic - View 中的 Couchbase 通配符/变量键

标签 dynamic view couchbase

在使用 Couchbase 进行一些研究和测试后,我得到了一些不错的结果。 然而,奇怪的是, View 必须提前创建,而且不太灵活。

基本上,如果我有这样的观点..

function(doc, meta) {
    emit([doc.name, doc.location, doc.gender, doc.birthYear, doc.birthMonth], null);
}

我想查询不同的键。例如,姓名可能 =“John”,性别 =“M” 我似乎无法做到 startKey = ["John", {}, "M"], endKey = ["John", {}, "M", {}]。

同样,如果我只想按性别和出生月份过滤上述内容怎么办? 看来我必须为每种可能的查询类型手动创建一个单独的 View ,如果不是最佳的,它会包含大量数据点。

我还没有看到任何涉及此问题的问题。另外,我研究了将参数传递给映射或减少以动态地执行其中任何操作,但这无法完成。我会被困在跨所有组级别提取所有记录,然后必须手动排序/聚合这些数据。

这可以做到吗?

谢谢

最佳答案

从 Couchbase 版本 4.x 开始,您有 N1QL query language 。您可以指定过滤条件来选择 json 对象,而无需任何 View 。

因此,根据您的示例,您应该能够发出这样的查询:

SELECT *
  FROM your_bucket_name
    WHERE name = 'John' AND gender = 'M'

这是一个N1QL tutorial来感受一下。

另一种方法是使用 Couchbase integration with ElasticSearch并在 ElasticSearch engine 中执行搜索查询这将返回根据您的搜索条件找到的所有键。

关于dynamic - View 中的 Couchbase 通配符/变量键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25475389/

相关文章:

python - Django/Python 的 CSS 模板系统?

c# - 如何通过在运行时按下按钮在 C# 中动态删除组合框?

c++ - 拆分已拆分的 Pane (MFC)

spring-boot - 如何使用响应式(Reactive)沙发底座获取对象的嵌套列表?

c# - 如何使用 .NET 客户端以编程方式删除托管在 couchbase 中的数据库存储桶中的所有数据

java - 从 application.properties 读取并替换动态参数

ios - 如何在 swift 中以编程方式创建动态标签大小?

ios - 快捷代码(根据数量隐藏 View )

python - 如何在 Flask-Admin 中显示角色与用户的关系?

docker - couchbase docker端口8091有301重定向