如何映射组合键

How do I map combination keys

我正在使用 cURL 开发 Apache CouchDB。 我创建了一个数据库,添加了数据库文件并创建了一个视图。 我做了以下配置来将键映射到视图。

function (doc) {
   emit([doc.key1, doc.key2, doc.key3], doc);   
}

我想使用组合键访问数据库文件。 IE。 在上面的例子中,key1 在我的 URL 的 get 请求中是固定的。 但我无法控制 key2 和 key3(有时我有 key2,其余的我有 key3)。

请你帮我知道, 如何使用 key1-key2 或 key1-key3 的组合访问数据库?

How can I access the database with a combination of key1-key2 OR key1-key3?

如果您想根据 key1key2key3 的存在或值访问文档,您很可能不想创建一个只发出的视图所有它们作为键。

相反,首先使用 _find-API 查看 Mango queries 并构造它们 s.t。返回所需的文件。例如:

{
  "selector": {
    "key1": {
      "$gt": null
    },
    "key2" {
      "$lt": "too high"
    }
}

为您的查询创建匹配 index or view

使用复合键查看本指南:https://docs.couchdb.org/en/stable/ddocs/views/collation.html#examples

因此,您可以尝试这样的操作:

startkey=[<val_key1>]&endkey[<val_key1>,{}]

startkey=[<val_key1>,<val_key2>]&endkey[<val_key1>,<val_key2>,{}]

如果您使用 cURL,请不要忘记对大括号进行编码或使用选项 -g/--globoff (Passing a URL with brackets to curl).

编辑: