mongodb - MongoDB-来自聚合结果的数组
问题描述
我有以下 MongoDB 查询:
db.my_collection.aggregate([
{
$group: {"_id":"$day", count: { $sum: "$myValue" }
}}])
它返回以下结果:
{
"_id" : ISODate("2020-02-10T00:00:00.000+01:00"),
"count" : 10
},
{
"_id" : ISODate("2020-02-01T00:00:00.000+01:00"),
"count" : 2
}
是否可以从这个结果中创建两个数组,如下所示?
{
"days": [ISODate("2020-02-10T00:00:00.000+01:00"), ISODate("2020-02-01T00:00:00.000+01:00")],
"values": [10, 2]
}
解决方案
是的,只需添加另一个$group
阶段:
db.my_collection.aggregate([
{
$group: {
"_id": "$day", count: {$sum: "$myValue"}
}
},
{
$group: {
"_id": null,
days: {$push: "$_id"},
values: {$push: "$count"}
}
}
])
推荐阅读
- python-3.x - 熊猫:按日期合并数据框中的两行但不包括其他行
- angular - 另一个角度内的http请求
- python - Dataframe python where条件考虑前行条件
- asp.net-core - 类库中 .NET Core 中的依赖注入
- javascript - 为什么我没有在 JS 中得到 console.log
- jenkins - Azure 管道 UI 接受参数(如 Jenkins)
- java - java.lang.ClassNotFoundException 运行时尝试使用 appium 打开 android 模拟器
- r - 在列表中查找共享元素
- c# - 我的程序需要使用位于 Debug 文件夹中的第三方软件,但程序显示找不到配置文件。C#
- yocto - 检查配方中的内核版本