Хотите получить максимальное значение поля speed
и соответствующие ему поля для этой записи.Symfony2 Mongodb aggregate - получить максимальное значение для поля
У этого MongoDB запрос:
db.Neo.aggregate({
$group: {
_id: '$name',
date: { $first: '$date' },
neo_reference_id: { $first: '$neo_reference_id' },
name: { $first: '$name' },
speed: {
$max: "$speed"
},
is_potentially_hazardous_asteroid: { $first: '$is_potentially_hazardous_asteroid' }
}
});
Теперь, так как я использую Symfony2 и Монго-ОДМ-агрегации-сверток, хотят получить этот запрос выполняется:
public function neofastestAction() {
$expr = new \Solution\MongoAggregation\Pipeline\Operators\Expr;
$aq = $this->get('doctrine_mongodb.odm.default_aggregation_query')->getCollection('NeoNasaBundle:Neo')->createAggregateQuery();
$result = $aq->group(['_id'=>'$name' ])
->getQuery()->aggregate()->toArray();
$serializer = $this->get('jms_serializer');
$response = $serializer->serialize($result,'json');
return new Response($response);
}
Это выполняет его, но печатает только _id
. Как я могу построить свой запрос MondoDB сверху в Symfony2 mongo-odm-aggregation-bundle (https://packagist.org/packages/solution/mongo-odm-aggregation-bundle) и получить последнюю строку? Это должно быть самое высокое значение speed
, поэтому самый быстрый астероид.
Спасибо.