AndroidアプリのレーティングシステムにNodeとMongoDbを使おうと考えていて、今のところCreate、Update、Deleteをうまく実装できているのですが、 DB。これが私が決めたデータ構造です:
[
{
"_id": "1",
"ratings": [
{
"value": "5",
"user": "CoolUser1"
},
{
"value": "4",
"user": "CoolUser2"
}
]
},
{
"_id": "2",
"ratings": [
{
"value": "4",
"user": "CoolUser3"
},
{
"value": "2",
"user": "CoolUser4"
}
]
}
]
基本的に必要なのは、特定の _id の評価の平均値です。
以下は、mongoDB 接続をどのようにセットアップしたかを理解するために使用している Update メソッドです。
exports.updateRating = function(req, res) {
var id = req.params.id;
var rating = req.body;
console.log('Updating a rating: ' + id);
console.log(JSON.stringify(rating));
ratings.update({'_id': id},
{$push: rating},
{upsert:true},
function(err, result) {
if (err) {
console.log('Error updating rating: ' + err);
res.send({'error':'An error has occurred'});
} else {
console.log('' + result + ' document(s) updated');
res.send(rating);
}
}
);
}