2014-01-13 4 views
0

мне нужно сделать вид, который излучает значение для каждой пары документов (декартово произведение _all_docs с собой)CouchDB испускают все документы попарно в функции карте

Например, предположим, что БД имеет документы с идентификаторами a, b, c -> то вид должен излучать 9 клавиш aa, ab, ac, ba ..., cc (предполагая, что нет группировки)

Eg если документы являются «городами» с координатами, представление возвращает пары городов и расстояние между ними (реальный пример более сложный), поэтому я мог бы использовать функцию _list для вычисления «ближайших ближайших городов» и так далее.

Это похоже на очень простую задачу, однако поиск Google и SO не дает никаких результатов. Я пропустил здесь какое-то волшебное ключевое слово?

ответ

0

Я не могу придумать способ сделать это в CouchDB - в принципе, это не поддается отображению/уменьшению индексов - в функции карты вы имеете доступ только к одному документу за раз и в сокращении вам нужно уменьшить результат (вычисление декартова продукта расширит его).

Если вы используете другую систему для прекомполяции расстояний между городами, то CouchDB, вероятно, подходит для хранения и запроса результата этого декартового продукта (например, найти 10 самых близких городов). Тем не менее, вы также можете посмотреть на базу данных графа (Neo4j или Giraph).

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