Vous feriez mieux d'utiliser .aggregate()
pour faire ça. C'est aussi une méthode directe sur les objets de la collection dans les versions modernes du pilote :
$result = $db->collection('Profit_and_loss')->aggregate(array(
array( '$group' => array(
'_id' => '$entity_id',
'year' => array( '$max' => '$year' )
))
));
Le .distinct()
La commande ne s'exécute que sur un seul champ. D'autres formulaires nécessitent une évaluation JavaScript, comme vous l'avez noté, et s'exécutent considérablement plus lentement que le code natif.