开发者

How do I filter on composite keys?

I need filter this view:

function (doc) {
    if (doc.doc_type == 'asd'){
        emit([doc开发者_开发知识库.date, doc.string_key_0, doc.string_key_1], doc.list_field);
    };
}

I do:

key_filter_0 = ['START_TIME', 'STRING0', 'STRING1']
key_filter_1 = ['END_TIME', 'STRING0', 'STRING1']
VIEW[key_filter_0:key_filter_1]

but the view only filtered with START_TIME and END_TIME. It just ignored the STRING0 / STRING1 key filters.


There's no such thing as 'key filters' in CouchDB.

Every item you emit into your view will be sorted by its key, and you can then find all items between a given startkey and endkey. In your case, items are first sorted by date then string_key_0 then string_key_1.

It sounds like you were expecting to only see items between 'START_TIME' and 'END_TIME' where all items had 'STRING0' for the second item and 'STRING1' for the third item, but this is not how CouchDB views work. They are a one-dimensional list of items, sorted by the whole key.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜