dictionary - 带 2 个键的 CouchDB View

标签 dictionary view couchdb mapreduce

我正在寻找 couchdb View 问题的通用解决方案。

例如,查看结果如下:

{"total_rows":4,"offset":0,"rows":[
{"id":"1","key":["imported","1"],"value":null},
{"id":"2","key":["imported","2"],"value":null},
{"id":"3","key":["imported","3"],"value":null},
{"id":"4","key":["mapped","4"],"value":null},
{"id":"5,"key":["mapped","5"],"value":null}
]

1)如果我只想选择“导入的”文档,我会使用这个:

view?startkey=["imported"]&endkey=["imported",{}]

2) 如果我想选择所有具有更高 id 的导入文档,则 2:

view?startkey=["imported",2]&endkey=["imported",{}]

3) 如果我想选择 id 在 2 到 4 之间的所有导入文档:

view?startkey=["imported",2]&endkey=["imported",4]

我的问题是:如何选择 id 在 2 到 4 之间的所有行?

最佳答案

您可以尝试扩展上面的解决方案,但在键前面添加一种“发出索引”标志,如下所示:

map: function (doc) {
  emit ([0, doc.number, doc.category]); // direct order
  emit ([1, doc.category, doc.number]); // reverse order
}

这样您就可以通过以下方式请求它们

view?startkey=[0, 2]&endkey=[0, 4, {}]

view?startkey=[1, 'imported', 2]&endkey=[1, 'imported', 4]

但是无论如何,两种不同的 View 会更好。

关于dictionary - 带 2 个键的 CouchDB View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10887359/

相关文章:

swift - 快速将文本字段数据存储到字典中

python - 按值对 python 字典中的键/值对进行分组,保持原始键关联

swift - 在与关闭时相同的 View Controller 中打开(快速)

couchdb - 多个 PouchDB 客户端实例与 CouchDB 服务器的实时同步

git - 是否有在 couchdb 之上运行的 git 实现?

javascript - 如何使用 Javascript 从 Python 字典中提取值?

dictionary - 迭代Go map 获取索引

angularjs - 添加额外的 'views:{' foo' :{}}' when declaring a view in angular? 的目的是什么

objective-c - 访问 super View 属性

mongodb - 面向文档的数据库是否适合此用例?