Как фильтровать составные ключи? - PullRequest
2 голосов
/ 27 сентября 2011

Мне нужно отфильтровать это представление:

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_TIME и END_TIME. Он просто игнорировал ключевые фильтры STRING0 / STRING1.

1 Ответ

1 голос
/ 27 сентября 2011

В CouchDB нет такой вещи, как «ключевые фильтры».

Каждый элемент, который вы выбрасываете в свой вид, будет отсортирован по его ключу, и вы сможете затем найти все элементы между данным ключом start и endkey.В вашем случае элементы сначала сортируются по дате, затем string_key_0, а затем string_key_1.

Похоже, вы ожидали увидеть элементы только между «START_TIME» и «END_TIME», где все элементы имели «STRING0» для второго элемента.и «STRING1» для третьего элемента, но это не то, как работают представления CouchDB.Это одномерный список элементов, отсортированный по всему ключу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...