簡體   English   中英

MongoDB / Mongoose聚合,階段結果未定義

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM