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"
},
}
}
所以我对 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"
},
}
}