CouchDB 如何Map组合键

b5lpy0ml  于 2022-12-09  发布在  CouchDB
关注(0)|答案(2)|浏览(160)

我正在使用cURL在Apache CouchDB上工作。我已经创建了一个数据库添加了数据库文件并创建了一个视图。我已经做了以下配置来将键Map到视图。

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

我想访问数据库文件使用组合键。即在上述情况下,key 1是固定在我的URL的获取请求。但我没有控制key 2和key 3(有时我有key 2和其余我有key 3)。
请你告诉我,我如何使用key 1-key 2或key 1-key 3的组合访问数据库?

hi3rlvi2

hi3rlvi21#

请查看本指南中的复合键: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)。
编辑:

vfh0ocws

vfh0ocws2#

如何使用key 1-key 2或key 1-key 3的组合访问数据库?
如果您希望基于key1key2key3的存在或值来访问文档,您很可能不希望创建一个视图,而只是将它们作为键发出 all
相反,首先使用_find-API查看Mango queries,并构造它们,然后返回所需的文档。

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

为您的查询建立相符的索引或view

相关问题