mongodb - 按多个字段对行进行分组并返回其他字段
问题描述
我想通过乘以字段对行进行分组并返回其他字段,就像在我的示例中一样,但它不起作用。
db.collection.aggregate([
{'$group': {'_id': {
'$basic.last_name',
'$basic.first_name'
}, 'data': {'$last': '$$ROOT'}}},
{'$replaceRoot': {'newRoot': '$data'}}
])
这个变体作为例外工作,我唯一需要按两个字段分组:
db.collectio.aggregate([
{'$group': {'_id': {'$basic.last_name', 'data': {'$last': '$$ROOT'}}},
{'$replaceRoot': {'newRoot': '$data'}}
])
我怎样才能达到我的目标?谢谢!
解决方案
你几乎接近了,代码有错误的语法:
db.collection.aggregate([
{'$group': {'_id': {
'last_name': '$basic.last_name',
'first_name': '$basic.first_name'
}, 'data': {'$last': '$$ROOT'}}},
{'$replaceRoot': {'newRoot': '$data'}}
])
推荐阅读
- sql - SQL中只查询满足三个条件的一行
- embedded-linux - 无法向 Yocto 映像添加简单的内核模块
- javascript - 在表单中动态生成嵌套输入
- java - 使用 facebook Graph API 使用短代码获取 instagram 视频指标
- posix - 可以将使用 boost 库在传统软件堆栈中编写的应用程序移植到自适应 AUTOSAR 堆栈中吗
- multithreading - Express js 多线程
- c# - 提取文件头签名,因为它在 ASP.NET Core 中直接流式传输到磁盘
- javascript - 使用“Date.prototype.toISOString”时可以去掉“.000Z”吗?
- r - 从包含列中的数字和字母的字符串中删除数字字符(在R中)
- crystal-reports - 将 sap b1 中标准选择中没有值的字段传递给水晶报告