CouchDBを使用して、私は現在、アイデアを表すドキュメントを持っています。このアイデアを評価できます。すべてのアイデアは1つのドキュメントであり、すべての評価は異なるドキュメントです。人々がアイデアを評価しているときの同時アクセスの問題を回避するために、私はこのようにこれを行っています。
私の文書はそのように見えます(私はそれらを単純化しました):
アイデア:
{
"_id": "idea1",
"title": "A great idea"
}
評価:
{
"_id": "rating1",
"rating": 1,
"author": "author1"
}
{
"_id": "rating2",
"rating": 1,
"author": "author2"
}
私は現在、reduce関数を使用して、アイデアIDとその評価(評価の単純な合計)を返します。
地図:
function(doc) {
if (doc.type == "rating")
emit(doc.idea_id, doc.rating);
}
減らす:
function(keys, values, rereduce) {
return sum(values);
}
私の質問は、「アイデア」ドキュメントに「参加」して、アイデアの評価を表すリデュース結果を得るにはどうすればよいでしょうか。