如何在mongodb中获取与某个查询匹配的第一条记录?

时间:2019-09-05 08:46:25

标签: mongodb pipeline aggregation

我有一个问题。我有一个mongodb聚合,需要给我一定的输出。但是我不确定该怎么做。让我给你一点背景:

我有一个带有会话的表。我已经匹配了会话,所以我只会得到有销售的会话。在同一行中,我有该次拍卖的上一届会议。现在的问题是,我只希望以前的会话作为输出,而session_time在带有该命令的session_time之前。如果在我的第一次会议之前另一个会议上有销售,那么我不需要在那个会议之前的会议。

让我给你举个例子:

session_id, session_time, previous_session_id, previous_session_time, previous_session_has_sale

10, 2019-08-07 18:00:00, 9, 2019-08-07 17:45:00, true
9, 2019-08-07 17:45:00, 8, 2019-08-07 15:23:00, false
8, 2019-08-07 15:23:00, 7, 2019-05-21 14:34:00, false
7, 2019-05-21 14:34:00, 6, 2019-04-24 17:45:00, true
6, 2019-04-24 17:45:00, 5, 2018-11-21 15:23:00, false
5, 2018-11-21 15:23:00, 4, 2018-11-21 14:34:00, false

所以我只希望order_id为10、9、8和7的记录。order_id7之前的记录不相关。

如何在聚合管道中构建它?我原本希望使用$ first,但是该运算符只能在$ group阶段使用。我需要在$ match或$ project阶段...

请帮帮我!

0 个答案:

没有答案