组中获取和"/>
如何从猫鼬中独立的两个子文档数组中获取和
我有这个架构
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一起用于以下销售和支出:
就是说,如果有销售但没有费用,则它们的总和变为0,反之亦然。SalesExpense.aggregate([ {$unwind: "$sales"}, {$unwind: "$expenses"}, {$group:{ _id:'$_id', sales:{$sum: "$sales.sellPrices"}, expenses:{$sum: "$expenses.amount"}, } },
但是问题是... 如果一个数组文档中有数据,而另一个数组中没有数据,则它给出0,即无法获得真实的总和。
我想获得销售和费用的总和,而不管其中之一没有数据。我该如何实现?
我有这个架构var salesExpenseSchema = new Schema({sales:[{amount:Schema.Types.Decimal128}],开支:[{amount:Schema.Types.Decimal128}]})); ...
回答如下:您可以通过简单的方法在项目阶段执行此操作:
更多推荐
如何从猫鼬中独立的两个子文档数组中获取和
发布评论