mongodb - 在一个 mongodb 查询中使用两个 group by 来匹配预期结果
问题描述
我有两个文件(项目和房间),我想获得如下结构的数据:
SELECT date, items, room
FROM itemsDocs
JOIN roomDocs ON itemsDocs.room = roomDocs._id
group by room
group by item.date
这是我现在尝试的查询:
let agg=[
{ $lookup: {
from: 'item',
localField: '_id',
foreignField: 'room',
as: 'data' }},
{
$unwind: { path: "$item", preserveNullAndEmptyArrays: true }
},
{
$sort:{
date:1
}
},
{$group:{
_id: "$_id",
room: { $first: "$$ROOT" },
},
},
{$project:{
room:1,
data:1,
}}
]
此查询的结果是一组不同的房间,每个房间都有项目列表:
[
{
room: ...
items: [...]
},
...
]
预期结果 :
[
{
date: ...
room: ...
items: [...]
},
...
]
如何使用 mongoDb 获得此结果?
提前致谢
解决方案
推荐阅读
- officer - 使用 R 官员包在 PowerPoint 幻灯片中添加方程式或数学模式
- css - 根据 ng-repeat 中的动态数据为 div 添加颜色
- jquery - 如何通过 AJAX 从 Laravel 控制器传递这个数组并创建一个表
- c - 如何将 MPU6050 设备数据发送到 IoT Hub
- c# - 使用 c# 在电子邮件中发送自适应卡片
- cucumber - 用 Cucumber 放心:如何将请求信息放入 HTML 报告中
- javascript - gulp 函数如何知道它内部调用的函数已经完成?
- qt - 如何调整 qt 停靠小部件的大小以适合 qCustomPlot 小部件?
- uml - 扩展类 (UML) 缺少可追溯性信息
- sql - SQL Server 中的压缩记录