У меня есть набор записей, как показано ниже:

Мне нужно написать запрос, где foreach тип данных каждого родителя я показываю тип данных с наивысшей датой, т.е.

Пока я могу создать две группы, одну по родительскому идентификатору, а другую по типу данных, но я не могу понять, как чтобы получить запись с максимальной датой. Ниже мой запрос:
db.getCollection('Maintenance').aggregate( [{ $group :
{ _id :{ parentName: "$ParentID" , maintainancename : "$DataType" }}},
{ $group : {
_id : "$_id.parentName",
maintainancename: {
$push: {
term:"$_id.DataType"
}
}
}
}] )