Mongo 具有多种不同类别的聚合

Mongo aggregations with multiple different sorts

所以我对 Mongo 聚合有点陌生,经过大量研究和谷歌搜索后,我不知道如何进行特定查询。

假设我有很多格式如下的文档:

{
  _id: 1,
  client: "Some Client",
  type: "Some Type",
  firstUsed: 2021-01-05T13:23:37.000+0000
  lastUsed: 2021-05-05T18:11:23.000+0000
}

我想做的是按类型对所有文档进行分组(针对特定客户),然后获取第一个 firstUsed 日期时间和最后一个 lastUsed 日期时间。

我一直在玩聚合,但是在客户端上做了 $match,在类型上做了 $group 之后,我只能弄清楚如何只获得我需要的一个日期.

firstUsed 排序并获得第一个文档很好,但是获得最后一个文档并不意味着我得到了正确的 lastUsed.

如何在保留已找到的 firstUsed 的同时重新排序并获取最后的 lastUsed 日期时间?

希望这是有道理的,

谢谢

从你所说的来看,我认为你是想获得最早的初次约会和最大的最后数据。您可以使用 $max$min 作为日期。这是您可以使用的解决方案:

{
$group: {
  _id: "$type",
  firstUsed: {
    $min: "$firstUsed"
  },
  lastUsed: {
    $max: "$lastUsed"
  }, 
 }
}

https://mongoplayground.net/p/v-QK2ItL3uq