我想使用 spring-data-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 是否有任何性能损失?