È meglio usare .aggregate()
per farlo. È anche un metodo diretto sugli oggetti di raccolta nelle versioni moderne del driver:
$result = $db->collection('Profit_and_loss')->aggregate(array(
array( '$group' => array(
'_id' => '$entity_id',
'year' => array( '$max' => '$year' )
))
));
Il .distinct()
il comando viene eseguito solo su un singolo campo. Altri moduli richiedono la valutazione JavaScript come hai notato e funzionano molto più lentamente del codice nativo.