[英]MongoDB/Mongoose aggregate, stage result undefined
我試圖從MongoDB集合(使用Mongoose)中獲取評論,並使用聚合管道計算評論數和平均值。 但是,當第一個$ match不返回任何內容時,腳本將崩潰,並顯示“無法讀取屬性'avg'未定義”錯誤。
var q = Comment.aggregate([
{ $match: {
_post: this,
rating: { $gt: 0 },
}},
{ $group: {
_id: null,
avg: { $avg: "$rating" },
count: { $sum: 1 }
}}
]);
q.exec(function(err, result) {
cb(err, result[0].avg, result[0].count);
});
當我忽略_post $ match時,結果包含所有注釋的正確平均值和計數,但是當$ match不返回任何內容時,它只會引發錯誤。如何解決?
我在看錯地方。 錯誤消息沒有引用查詢中的“ avg”,而是引用了回調函數中的result.avg。 在發布之前,我已經將回調函數參數更改為result [0] .avg,現在錯誤消息即將無法從未定義中讀取“ 0”。
盯着自己瞎瞎在錯誤的地方..發布太早了..
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.