如何映射组合键
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?
如果您想根据 key1
、key2
、key3
的存在或值访问文档,您很可能不想创建一个只发出的视图所有它们作为键。
相反,首先使用 _find
-API 查看 Mango queries 并构造它们 s.t。返回所需的文件。例如:
{
"selector": {
"key1": {
"$gt": null
},
"key2" {
"$lt": "too high"
}
}
使用复合键查看本指南: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).
编辑:
- 键之间没有space(写
[<val_key1>,{}]
而不是[<val_key1>, {}]
)
- 您可能必须为每个可用的键组合(key1-key2、key2-key3、key1-key3)组合创建多个视图,因为例如
[{},<val_key2>,<val_key3>]
不起作用,并且 return 你没有行。如果你想按 <val_key2>
或 <val_key3>
分组,你必须先发出它们。 (另见 https://forums.couchbase.com/t/how-to-give-muliple-composite-keys-in-startkey-and-endkey-to-search-in-views/629)
我正在使用 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?
如果您想根据 key1
、key2
、key3
的存在或值访问文档,您很可能不想创建一个只发出的视图所有它们作为键。
相反,首先使用 _find
-API 查看 Mango queries 并构造它们 s.t。返回所需的文件。例如:
{
"selector": {
"key1": {
"$gt": null
},
"key2" {
"$lt": "too high"
}
}
使用复合键查看本指南: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).
编辑:
- 键之间没有space(写
[<val_key1>,{}]
而不是[<val_key1>, {}]
) - 您可能必须为每个可用的键组合(key1-key2、key2-key3、key1-key3)组合创建多个视图,因为例如
[{},<val_key2>,<val_key3>]
不起作用,并且 return 你没有行。如果你想按<val_key2>
或<val_key3>
分组,你必须先发出它们。 (另见 https://forums.couchbase.com/t/how-to-give-muliple-composite-keys-in-startkey-and-endkey-to-search-in-views/629)