Можно ли изменить порядок значений просмотра с помощью уменьшения карты?

Мне нужно переупорядочить результаты просмотра coiuchbase на основе значений. Я пишу сокращение карты, как показано ниже, и выполняю сортировку с использованием ключей group, reduce и убывания.

function (doc, meta) {
 if(doc.transactionType=='Transaction') 
  {
    for(var i=0; i<doc.transactionList.length; i++)  
     {  
         if(doc.transactionList[i].bucket==1)  { 
          emit(doc.transactionList[i].transactionId,null);
         }
     } 
  } 
}

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

{"rows":[
  {"key":"Transaction1","value":2},
  {"key":"Transaction3","value":3},
  {"key":"Transaction4","value":1}
  ] 
}

Можно ли получить результаты, указанные ниже. Если да, то какой совет мне здесь не хватает?

{"rows":[
    {"key":"Transaction3","value":3},
    {"key":"Transaction1","value":2},
    {"key":"Transaction4","value":1}
  ]
}

person Community    schedule 03.12.2014    source источник


Ответы (1)


Нет, в couchbase нельзя сортировать по стоимости. Только по ключу Вы должны сортировать перед вставкой или после запроса данных из представления

person Vitaliy    schedule 04.12.2014
comment
Я согласен, но есть ли какой-либо оптимизированный обходной путь для этого, потому что мой приоритет - не сортировать по transactionId по значению. Но я не могу вернуться, потому что мне нужно использовать groupby на основе transactionId. - person ; 05.12.2014
comment
почему вы не можете сгруппировать свои документы по идентификатору, а не по значению? Сортировать по идентификатору и группировать по значению - person Vitaliy; 07.12.2014
comment
Здесь значение - это счетчик после группировки идентификатора ключевого документа. Итак, я не могу группировать по значению. Есть ли обходной путь? - person ; 09.12.2014
comment
Создайте другое представление, которое будет упорядочено по ключу. Назовите вас текущим представлением, получите документы со счетчиком и вызовите второе представление, где счет будет ключевым. Не элегантно, но я думаю, что это сработает ... - person Vitaliy; 09.12.2014