2015-09-02 4 views
1

Я использую Couchbase 3.0, и у меня есть вариант использования, где я хочу выполнить сортировку, но поскольку i cam через couchbase не обеспечивает сортировку по значениям, но обеспечивает сортировку по ключам, но поскольку я использую (true), он возвращает мне пустой список. А с другой стороны, если я просто использую его без спуска, то он дает мне все связанные с документами.Couchbase View: Sorting on Keys

Моя функция Карта:

function (doc, meta) { 
    emit([meta.id,doc.latest.sortData],null); 
} 
} 

Теперь мой случай использования является то, что я хочу, чтобы выполнить запрос на матч meta.id, а затем для всех совпавших случаев сортировать данные, а затем выяснить, верхние значения ,

код, который я использую, чтобы так:

ViewQuery.from(DesignDocName, viewName).startKey(JsonArray.from(write(List("something","")))).descending(true).limit(5).stale(Stale.FALSE)) 

Если удалить параметр нисходящего, то я получаю соответствующие строки, но они не сортируются. Не могли бы вы предоставить мне способ, которым это можно сделать.

Любая помощь с оценкой

Thanks!

+0

без 'descending' вы ** ** только получить желаемые результаты? не следует ли использовать какую-либо форму 'endKey', чтобы сдерживаться на одном' meta.id'? –

+0

Если я использую endKey = что-то, то он также дает мне пустой список. –

+0

Мы считаем, что для этого потребуется карта и уменьшить ее. Можете ли вы предоставить некоторые примеры данных и ожидаемые результаты? С этим мы можем помочь вам разобраться. Нам понадобится как ключ, так и значение в вашем предложении emit. –

ответ

1

Я читал документы Couchbase и наткнулся на эту строку:

Поскольку выбор сделан после сортировки результатов просмотра, если вы настроить результаты должны быть отсортированы в порядке убывания, и вы выбора информации с использованием диапазон клавиш, тогда вы также должны изменить параметры ключа запуска и конечной клавиши.

посмотреть здесь: http://docs.couchbase.com/admin/admin/Views/views-querying.html#ordering

Смежные вопросы