mongodb - MongoDB 在一个排序阶段查询多个集合
问题描述
我有一些布局相同的数据分为几个集合,比如我们有名为 Jobs.Current、Jobs.Finished、Jobs.ByJames 的集合。
我已经在其中一个集合上使用了一些聚合阶段实现了一个复杂的查询,其中最后一个阶段是排序。是这样的(但实际上它是用 C# 实现的,另外还做了一个投影):
db.ArchivedJobs.aggregate([ { $match: { Name: { $gte: "A" } } }, { $addFields: { "UpdatedTime": { $max: "$Transitions.TimeStamp" } } }, { $sort: { "__tmp": 1 } } ])
我的新要求是将所有这些集合包含到我的查询中。我可以通过简单地按顺序对所有集合运行相同的查询来做到这一点 - 但我仍然需要将结果排序在一起。由于这种排序不是那么微不足道(使用由子数组上的 $max 创建的附加字段)并且我正在使用跳过和限制选项,我希望可以通过以下方式执行此操作:
- 通过定义适当的聚合步骤来执行我已经在所有相关集合上实现的查询
- 之后在同一个聚合请求中对整个结果进行排序
我找到了带有 $lookup 阶段的东西,但无法将其应用于我的请求,因为它需要进行一些面向字段的匹配(?)。我需要访问完整的对象。
数据类似于
{
"_id":"4242",
"name":"Stream recording Test - BBC 60 secs switch",
"transitions":[
{
"_id":"123",
"timeStamp":"2020-02-13T14:59:40.449Z",
"currentProcState":"Waiting"
},
{
"_id":"124",
"timeStamp":"2020-02-13T14:59:40.55Z",
"currentProcState":"Running"
},
{
"_id":"125",
"timeStamp":"2020-02-13T15:00:23.216Z",
"currentProcState":"Error"
} ],
"currentState":"Error"
}
解决方案
推荐阅读
- r - R xml2; 将嵌套的 xml 文件转换为数据框
- r - 向 R 中的观星者表添加稳健的标准误差
- airflow - Apache气流中的开始日期和预定日期问题
- oracle - ORA-01407: 无法更新为 NULL 试图获取实际数字
- haskell - 异步代码在 haskell 中的运行速度比同步版本慢
- azure-active-directory - Azure 广告 - Powershell - 如果用户是组 b 的成员,则从组 a 中删除用户
- libreoffice - 如何通过 Calc Macro 以编程方式打开和修改 ODT 文件
- java - 如何检查文件或控制台是否与标准输出相关联?
- postgresql - 每个函数/过程的 Postgres 日志目标
- python - Django 在注册表单中使用选择选项.py