使用CouchDB,我目前有一个代表想法的文档,您可以对此想法进行评分。每个想法都是一个文档,每个评分都是一个不同的文档。我这样做是为了避免在人们评分时出现并发访问问题。
我的文档看起来像这样(我已经简化了它们):
一个想法:
评分:
我目前使用reduce函数来返回想法的ID和他/她的评分(评分的简单总和):
映射:
减少:
我的问题是:我该如何将“想法”文档与表示想法评分的缩减结果“连接”起来?
我的文档看起来像这样(我已经简化了它们):
一个想法:
{
"_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);
}
我的问题是:我该如何将“想法”文档与表示想法评分的缩减结果“连接”起来?