(PECL mongo >=1.2.11)
MongoCollection::distinct — Возвращает список уникальных значений для данного ключа в коллекции
$key
   [, array $query
  ] )Команда distinct возвращает список уникальных значений для данного ключа в коллекции.
keyКлюч, используемый для получения уникальных значений
queryОпциональные параметры запроса.
   Возвращает массив уникальных значений,  или FALSE в случае возникновения ошибки
  
Пример #1 Пример использования MongoCollection::distinct()
<?php
// Подключение и создание документа и коллекции
$m = new Mongo;
$db = $m->selectDB("test");
$db->dropCollection("distinct");
$c = $db->distinct;
// Вставка данных в коллекцию
$c->insert(array("stuff" => "bar", "zip-code" => 10010));
$c->insert(array("stuff" => "foo", "zip-code" => 10010));
$c->insert(array("stuff" => "bar", "zip-code" => 99701), array("w" => 1));
// Получение уникальных данных по ключу zip-code
$retval = $c->distinct("zip-code");
var_dump($retval);
// Получение уникальных данных по ключу zip-code с использованием запроса
$retval = $c->distinct("zip-code", array("stuff" => "foo"));
var_dump($retval);
$retval = $c->distinct("zip-code", array("stuff" => "bar"));
var_dump($retval);
?>
Результат выполнения данного примера:
array(2) {
  [0]=>
  int(10010)
  [1]=>
  int(99701)
}
array(1) {
  [0]=>
  int(10010)
}
array(2) {
  [0]=>
  int(10010)
  [1]=>
  int(99701)
}
Пример #2 Пример использования MongoCollection::distinct() с вложенным документом
<?php
$c->insert(array("user" => array("points" => 25)));
$c->insert(array("user" => array("points" => 31)));
$c->insert(array("user" => array("points" => 25)));
$retval = $c->distinct("user.points");
var_dump($retval);
$retval = $c->distinct("user.nonexisting");
var_dump($retval);
?>
Результат выполнения данного примера:
array(2) {
  [0]=>
  int(25)
  [1]=>
  int(31)
}
array(0) {
}