mongodb - 在 Mongo 聚合中按变量分组
问题描述
我有一个 mongo 聚合,目前在这个项目中结束:
{
$project: {
_id: 1,
name: 1,
subject_id: '$subject.subject',
groups: '$groups'
}
}
它创建了这个测试数组:
0:
_id: 1
groups: (27)
name: "Year 1 Maths Paper 1"
subject_id: "111"
1:
_id:2
groups: (27)
name: "Year 1 Maths Paper 2"
subject_id: "111"
但是,我想按 subject_id 对数据进行分组。所以每个主题都是一个数组,里面有与之相关的测试。有谁知道如何做到这一点?
解决方案
演示 - https://mongoplayground.net/p/-cST7kqFYxS
使用$group来分组 subject_id 和$push名称到测试数组。
db.collection.aggregate([
{
$group: {
_id: "$subject_id",
tests: { $push: "$name" }
}
}
])
推荐阅读
- laravel - 从 htaccess 密码保护中排除特定的 laravel 路由
- python - 在运行时导入模块,python
- git - 如何覆盖特定存储库的 GIT_OBJECT_DIRECTORY?
- maven - Extentreport 支持 Cucumber-JVM 4.0 (io.cucumber)
- python - 对于具有零值的参考角度,numpy sin 和 cos 不会完全返回零
- python - 通过 xpath 枚举元素时 Selenium chromedriver 异常
- buildroot - Pocketsphinx french 在我的 buildroot 嵌入式设备上不起作用
- node.js - NodeJS:承诺/等待会加快我的代码吗?
- database - 主键和实体id的区别
- java - com.twilio.exception.ApiException:Twilio 找不到具有指定发件人地址的频道