Je kunt beter .aggregate()
om dit te doen. Het is ook een directe methode op de collectieobjecten in moderne versies van de driver:
$result = $db->collection('Profit_and_loss')->aggregate(array(
array( '$group' => array(
'_id' => '$entity_id',
'year' => array( '$max' => '$year' )
))
));
De .distinct()
commando loopt alleen over een enkel veld. Voor andere formulieren is JavaScript-evaluatie vereist, zoals u hebt opgemerkt, en deze werken aanzienlijk langzamer dan native code.