Я хотел бы реализовать следующий запрос с использованием пружинного данных-MongoDB:
db.getCollection('collection').aggregate([
{ $group: {_id: "$profile", last: { $last: { firstname:"$firstname", lastname:"$lastname"}}}}])
, что приводит к таким результатам:
{
"_id": "",
"last": {
"firstname": "",
"lastname": ""
}
}
Тем не менее, кажется, что только API доступна
GroupOperation groupOperation = Aggregation.group("profile").last("firstname").as("firstname").last("lastname").as("lastname");
это переводится:
db.getCollection('collection').aggregate([
{ $group: {_id: "$profile", firstname: { $last: "$firstname"}, lastname: { $last: "$lastname"}}}])
дает:
{
"_id": "",
"firstname": "",
"lastname": ""
}
Существует GroupOperation.last(AggregationExpression expr)
, но я не знаю, как использовать его.
С другой стороны, существует ли какой-либо штраф за производительность при использовании $ last несколько раз в одном агрегате?