【发布时间】:2020-10-03 01:43:38
【问题描述】:
我有一组Submission 文档。
每个Submission 都有一个bookingId,一个提交状态和一个指示,当状态为SUCCESS 时是否发送了事件
我正在尝试创建一个返回唯一 bookingId 列表的聚合。如果该 bookingId 的所有提交的状态为 SUCCESS,则此列表应包含 bookingId。
下面我有一组示例 Submission 文档:
{
"_id" : ObjectId("5f7349ebc783305b9331a4b0"),
"bookingId" : "NW111",
"status" : "SUCCESS",
"sent" : false
},
{
"_id" : ObjectId("5f7349ebc783305b9331a4b1"),
"bookingId" : "NW111",
"status" : "SUCCESS",
"sent" : false
},
{
"_id" : ObjectId("5f7349ebc783305b9331a4b2"),
"bookingId" : "NW115",
"status" : "READY",
"sent" : false
},
{
"_id" : ObjectId("5f7349ebc783305b9331a4b3"),
"bookingId" : "NW115",
"status" : "PROCESSING",
"sent" : false
},
{
"_id" : ObjectId("5f7349ebc783305b9331a4b4"),
"bookingId" : "NW115",
"status" : "ERROR",
"sent" : false
}
上述示例的预期结果应该是
{
"bookingIds" : ["NW111"]
}
到目前为止,我有以下内容:
db.submissions.aggregate(
[ { $match : { sent : false } } ]
);
【问题讨论】:
-
有点困惑,你的预期输出是什么?
-
@varman,我添加了预期的输出和更多解释。
标签: mongodb aggregation-framework