我需要过滤这个 View :
function (doc) {
if (doc.doc_type == 'asd'){
emit([doc.date, doc.string_key_0, doc.string_key_1], doc.list_field);
};
}
我愿意:
key_filter_0 = ['START_TIME', 'STRING0', 'STRING1']
key_filter_1 = ['END_TIME', 'STRING0', 'STRING1']
VIEW[key_filter_0:key_filter_1]
但 View 仅使用 START_TIME
和 END_TIME
过滤。它只是忽略了 STRING0
/STRING1
键过滤器。
最佳答案
CouchDB 中没有“关键过滤器”之类的东西。
您发送到 View 中的每个项目都将按其键排序,然后您可以找到给定开始键和结束键之间的所有项目。在您的情况下,项目首先按日期排序,然后是 string_key_0,然后是 string_key_1。
听起来您似乎只希望看到“START_TIME”和“END_TIME”之间的项目,其中所有项目的第二个项目都是“STRING0”,第三个项目是“STRING1”,但这不是 CouchDB View 的工作方式。它们是一维项目列表,按整个键排序。
关于python - 如何过滤复合键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7563918/