我正在寻找 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/