Используя 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);
}
У меня вопрос: как я могу «объединить» документ «идея» с результатом сокращения, который представляет рейтинг для идеи?