java - 如何聚合 MongoDB 的最终总和?从之前计算的总和
问题描述
如何汇总最终的总和?从之前计算的总和
这是原始结果。
[
{
"name": "a",
"prices": 10,
},
{
"name": "a",
"prices": 20,
}
]
但我需要这样做。
[
{
"name": "a",
"prices": 10,
},
{
"name": "a",
"prices": 20,
},
//i need to do more//
{
"name": "total",
"total":30
}
]
这是示例图片。
解决方案
$group
通过 null 并在 中构造根文档数组docs
,得到总价totalPrices
- 使用concat 当前
docs
价格和总价格 doc$concatArrays
$unwind
解构docs
数组$project
显示来自docs
对象的两个字段
db.collection.aggregate([
{
$group: {
_id: null,
docs: { $push: "$$ROOT" },
totalPrices: { $sum: "$prices" }
}
},
{
$project: {
docs: {
$concatArrays: [
"$docs",
[
{
name: "total",
prices: "$totalPrices"
}
]
]
}
}
},
{ $unwind: "$docs" },
{
$project: {
_id: 0,
name: "$docs.name",
prices: "$docs.prices"
}
}
])
推荐阅读
- wordpress - WooCommerce 自定义订单 itemmeta 显示我的帐户查看订单页面
- flutter - Flutter多线程保存文件到本地
- python - 如果我连接输出层然后提取张量切片,这两个 Keras 模型是否等效
- javascript - 为什么连接字符串返回未定义
- go - 如何将参数传递给装饰函数?
- hadoop - Hive 找不到 LZO 编解码器
- c# - 运算符“==”不能应用于“T”和“int”类型的操作数
- html - 如何在卡片后面放置 img 并使其响应
- java - java.io.FileNotFoundException:stack.txt:打开失败:EROFS(只读文件系统)
- audio - Pygame 声音输出双频。?