我有一個評論集合和一個Page集合。評論屬於頁面。用戶可以提出評論,並且我想要顯示屬於頁面的評論的所有投票的總計總和。什麼是這樣做的好方法?我應該使用AutoValue來存儲集合的集合值嗎?
我正在考慮將總和保留爲頁面集合內的AutoValue。有沒有辦法偶爾觸發重新計算AutoValue?我不需要實時更新總和,每5分鐘一次就足夠了。
或者這是一個壞主意?在模板中使用ReactiveVar進行計算還是其他更好?
編輯:真的,沒有什麼特別的設置。只需一個帶有數字「投票」屬性的評論集合和一個帶有數字自動值「分數」的網頁集合,該集合應計算投票數。 的網頁:
Collections.Pages = new Mongo.Collection("pages");
var PageSchema = new SimpleSchema({
name: {
type: String,
min: 1
},
score: {
type: Number,
autoValue: function (doc) {
var maxValue = 1;
Collections.Comments.find({ pageId: doc.pageId }).map(function(mapDoc){
maxValue += mapDoc.votes;
});
return maxValue;
}
},
的評論:
Collections.Comments = new Mongo.Collection("comments");
var CommentSchema = new SimpleSchema({
pageId: {
type: String
},
name: {
type: String,
optional: true
},
votes: {
type: Number,
label: 'Total Votes',
defaultValue: 0
},
你可以發佈模式和發佈者的代碼嗎? – zim
請參閱編輯。發佈者沒有什麼值得發佈的內容,因爲它現在只是簡單地返回一篇文章及其評論。 – Cos