具有$ group的Mongodb聚合,无法读取未定义的属性'xxx'

问题描述 投票:1回答:1

如果我没有任何价值,控制台总是打印出未定义的错误...

收藏名称:帖子

_id,
id,
name,
mobile,
price,
create_at


db.posts.aggregate([
{
    $match: {
        created_at: {$gte: start, $lt: end}, 
        mobile: p_mobile,
        id:p_id
    }
},
{
    $group: { _id : null, sum : { $sum: "$price" } }
}
],function(err, result){ 
    if (err) throws err
    if(result){
        console.dir(result);
        console.log("object sum : " + result[0].sum);
        return res.send(result);
    } 
});

一旦我有普通文件,就可以了。但是,当条件不匹配时,它会打印出“ uncaughtException TypeError:无法读取未定义的属性'sum'” ...

为什么节点不识别求和字段?

node.js mongodb sum grouping aggregate
1个回答
0
投票

我在项目中遇到了同样的问题,这是我如何解决的问题。

const rentalsCount = await Rental.estimatedDocumentCount();

let totalFee = 0;
if (rentalsCount > 0) 
   totalFee = await getTotalRevenue();

const rentals = await Rental.find().sort('-dateOut');

res.send({ totalFee, rentals }); 

如果没有文档,结果将看起来像这样

{
"totalFee": 0,
"rentals": []
}

我希望能对某人有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.