MongoDB, найти уникальные значения
8 февраля, 2012
Задача: найти уникальные значения определённого поля документов коллекции.
Пример:
Создадим документы
db.comments.save({"user": {"points": 25}}) db.comments.save({"user": {"points": 31}}) db.comments.save({"user": {"points": 25}}) |
Решение:
db.comments.distinct("user.points"); [ 25, 31 ] |
Решение на PHP:
$points=$this->mongo_base->command(array("distinct" => "comments", "key" => "user.points")); |
Думаю, что это map-reduce, следовательно индексы не юзаются. Если коллекция большая — лучше эти элементы дублировать в другую коллекцию, или, подправить модель предметной области, сократив подобные запросы к минимуму.
Левелап 🙂
Я король distinct!!!111
МонгоБох 🙂