Используя CouchDB, у меня в настоящее время есть документ, который представляет идею, вы можете оценить эту идею. Каждая идея — это один документ, а каждый рейтинг — это отдельный документ. Я делаю это таким образом, чтобы избежать проблем с одновременным доступом, когда люди оценивают идею.
Мои документы выглядят так (я их упростил):
Идея:
{
"_id": "idea1",
"title": "A great idea"
}
Рейтинги:
{
"_id": "rating1",
"rating": 1,
"author": "author1"
}
{
"_id": "rating2",
"rating": 1,
"author": "author2"
}
В настоящее время я использую функцию сокращения, чтобы вернуть мне идентификатор идеи и его/ее рейтинг (простую сумму рейтингов):
Карта:
function(doc) {
if (doc.type == "rating")
emit(doc.idea_id, doc.rating);
}
Уменьшать:
function(keys, values, rereduce) {
return sum(values);
}
Мой вопрос: как я могу «присоединиться» к документу «идея» с результатом сокращения, который представляет рейтинг идеи?