Raději použijte .aggregate()
udělat toto. Je to také přímá metoda na objekty kolekce v moderních verzích ovladače:
$result = $db->collection('Profit_and_loss')->aggregate(array(
array( '$group' => array(
'_id' => '$entity_id',
'year' => array( '$max' => '$year' )
))
));
.distinct()
příkaz běží pouze přes jedno pole. Jiné formuláře vyžadují vyhodnocení JavaScriptu, jak jste si všimli, a běží podstatně pomaleji než nativní kód.