Поиск:

Ответ в темуСоздание новой темы Создание опроса
> CouchDB уникальные элемент 
V
    Опции темы
Chort409
Дата 6.3.2012, 23:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 31.7.2008

Репутация: нет
Всего: нет



Добрый день.

Возникла следующая проблемма при работе с CouchDB.
В результате работы view получаю дублирующие записи типа:
Код

{"total_rows":511,"offset":381,"rows":[
{"id":"CDOC_2.16.840.1.113883.3.59.3:0947___QCPR___80717","key":"7012979","value":{"one":"one","two":"two"}},
{"id":"CDOC_2.16.840.1.113883.3.59.3:0947___QCPR___80921","key":"7012979","value":{"one":"one","two":"two"}}
]}

Есть ли возможность получить одно единственное значение по заданному параметру ?
Пробовал сделать это через reduse, но особых результатов не получил.
Можно конечно фильтровать уже на сервере, но хотелось бы сделать это на стороне CouchDB.
PM MAIL   Вверх
Chort409
Дата 14.3.2012, 21:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 31.7.2008

Репутация: нет
Всего: нет



Если кому будет интересно, то проблемма решина.
Немножко кривым способом но встаки.

Нужно переписать view с использование сложного ключа, который будет содержать все параметры которые нужны от этого view.
Выглядит примерно вот так:

Код

function(doc) {
var complexKey = [doc.document.one, doc.document.two,...];
emit(complexKey, {doc.document.one, doc.document.two,...});
}


Так же надо добавить очень простою reduse функцию

Код

_count

И как бы все. Запрос к CouchDB теперь выглядит так:
?group=true&startkey=["7012979"]&endkey=["7012979",{}]

Ответ от бд будет выглядить следующим образом:
Код

{"rows":[
{"key":["one","two"],"value":2}
]}

Собственно то, что и хотели получить.
PM MAIL   Вверх
Google
  Дата 10.12.2019, 07:47 (ссылка)  





  Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | NoSQL | Следующая тема »


 




[ Время генерации скрипта: 0.0758 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.