我正在使用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的组合访问数据库?
2条答案
按热度按时间hi3rlvi21#
请查看本指南中的复合键:https://docs.couchdb.org/en/stable/ddocs/views/collation.html#examples
因此,您可以尝试以下操作:
或
如果使用cURL,不要忘记对大括号进行编码或使用选项-g/--globoff(Passing a URL with brackets to curl)。
编辑:
[<val_key1>,{}]
而不是[<val_key1>, {}]
)[{},<val_key2>,<val_key3>]
不起作用,不会返回任何行。如果您想按<val_key2>
或<val_key3>
分组,您必须首先发出它们。(另请参阅https://forums.couchbase.com/t/how-to-give-muliple-composite-keys-in-startkey-and-endkey-to-search-in-views/629)vfh0ocws2#
如何使用key 1-key 2或key 1-key 3的组合访问数据库?
如果您希望基于
key1
、key2
、key3
的存在或值来访问文档,您很可能不希望创建一个视图,而只是将它们作为键发出 all。相反,首先使用
_find
-API查看Mango queries,并构造它们,然后返回所需的文档。为您的查询建立相符的索引或view。