如何从猫鼬中独立的两个子文档数组中获取和

编程入门 行业动态 更新时间:2024-10-05 21:17:11

如何从猫鼬中独立的两个子文档数<a href=https://www.elefans.com/category/jswz/34/1771283.html style=组中获取和"/>

如何从猫鼬中独立的两个子文档数组中获取和

我有这个架构

    var salesExpenseSchema = new Schema({   

        sales: [{amount : Schema.Types.Decimal128}],

        expenses: [{amount : Schema.Types.Decimal128}]

});

数据库记录示例如下:>

{
    _id:'5dbac5dfa1488240cbc4f838',
    sales:[{amount:23000},{amount:45000}],
    expenses: [{amount:5000},{amount:8500}]
}

现在,我想获得销售和费用的总和。

我已将Aggregate与$ unwind一起用于以下销售和支出:

SalesExpense.aggregate([
              {$unwind: "$sales"},
              {$unwind: "$expenses"},
              {$group:{
                    _id:'$_id',
                    sales:{$sum: "$sales.sellPrices"},
                    expenses:{$sum: "$expenses.amount"},
                  }
              },

但是问题是... 如果一个数组文档中有数据,而另一个数组中没有数据,则它给出0,即无法获得真实的总和。

就是说,如果有销售但没有费用,则它们的总和变为0,反之亦然。

我想获得销售和费用的总和,而不管其中之一没有数据。我该如何实现?

我有这个架构var salesExpenseSchema = new Schema({sales:[{amount:Schema.Types.Decimal128}],开支:[{amount:Schema.Types.Decimal128}]})); ...

回答如下:

您可以通过简单的方法在项目阶段执行此操作:

更多推荐

如何从猫鼬中独立的两个子文档数组中获取和

本文发布于:2024-05-06 20:33:57,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1753820.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:组中   独立   两个   文档   猫鼬中

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!