使用CouchDB,我目前有一个代表一个想法的文档,你可以评价这个想法。每个想法都是一个文件,每个评级都是一个不同的文件。我这样做是为了避免人们在评价一个想法时出现并发访问问题。
我的文件看起来像这样(我已经简化了它们):
一个想法:
{
"_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);
}
我的问题是:我如何将“想法”文档与代表想法评级的减少结果“加入”?