如何过滤复合键?

时间:2011-09-27 03:33:14

标签: python couchdb

我需要过滤此视图:

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]

但该视图仅使用START_TIMEEND_TIME进行过滤。它忽略了STRING0 / STRING1密钥过滤器。

1 个答案:

答案 0 :(得分:1)

CouchDB中没有'关键过滤器'这样的东西。

您在视图中发出的每个项目都将按其键排序,然后您可以找到给定开始键和结束键之间的所有项目。在您的情况下,项目首先按日期排序,然后是string_key_0,然后是string_key_1。

听起来你只希望看到'START_TIME'和'END_TIME'之间的项目,其中所有项目的第二项都是'STRING0',第三项是'STRING1',但这不是CouchDB查看工作的方式。它们是一维的项目列表,按整个键排序。