【问题标题】:CouchDB How to make queries with multiple complex keysCouchDB 如何使用多个复杂键进行查询
【发布时间】:2017-01-27 10:21:28
【问题描述】:

我正在尝试创建一个 CouchDB 视图以获取位于集合 1 和集合 2 中的一些文档。例如,当我有一个键时,我可以进行如下查询:

dbname/_design_doc/viewName?keys=[value1, value2, value3]

它会返回找到 value1、2 或 3 的所有文档。我想要的是这样的东西,但需要一个复杂的键。 例如,

dbname/_design_doc/viewName?keys=[[key1, key12, key13],[key21, key22]]

其中 key1x 是第一个键的值,key2x 是第二个键的值,这意味着我想获取每个具有 key11 和 key21、key11 和 key22、key12 和 key21、key12 和 key22 等的文档.

我的看法是这样的:

"twokeys": {
      "map": "function(doc) {\n  if (doc.uid && doc.hid){\n        
                   emit([doc.uid, doc.hid], doc);\n  }\n}"
 }

这可能吗?

提前致谢

【问题讨论】:

  • 答案是:是的:)
  • 真的是@AlexisCôté 吗?我正在尝试这样做,但我无法使用 ektorp 编写 JAVA 代码。 ektorp 的 keys 参数要求 Collection> 并且我无法创建 vector、vector 的集合,因为其中一个键是字符串,另一个是整数,忘记了那部分,抱歉.
  • 那么这可能是你的库的限制,我稍后再看看。
  • 看看这个answer
  • 我明天会努力做到这一点@AlexisCôté 并回复您!非常感谢!

标签: java key couchdb views nosql


【解决方案1】:
  1. 关注this answer,可以通过keys参数使用复杂键查询。

  2. 很遗憾,您不能同时使用键查询 startkey 或 endkey。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-05
    • 2011-04-03
    相关资源
    最近更新 更多