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, следовательно индексы не юзаются. Если коллекция большая — лучше эти элементы дублировать в другую коллекцию, или, подправить модель предметной области, сократив подобные запросы к минимуму.

3 комментария для “MongoDB, найти уникальные значения”


Оставить комментарий

© 2010 - 2024 Ядоблог. Ничего не защищено.
Powered by Лаборатория Яда. Написать Яду