Как выбрать случайный документ

Добрый вечер.
Как из коллекции MongoDB выбрать случайный документ?
  • Вопрос задан
  • 3216 просмотров
Пригласить эксперта
Ответы на вопрос 3
ertaquo
@ertaquo
Вот похожий вопрос с несколькими ответами: Random record from MongoDB.
Вкратце пересказывая вариант, который там набрал больше всего голосов: найти количество записей в коллекции и пропустить yourRandomNumber = (int)(rand() * count) записей:
db.yourCollection.find().limit(-1).skip(yourRandomNumber).next()
Ответ написан
avalak
@avalak
В The MongoDB Cookbook это есть The Random Attribute.
Ответ написан
@egorinsk
У документов есть целочисленные последовательные id? У нас, в Mysql на PHP это решается просто: получаем max_id и min_id, генерируем 20 рандомных чисел в этом диапазоне и выбираем SELECT * FROM table WHERE id IN (20 random numbers) LIMIT 1. Работает замечательно, через индексы, без всяких извращений.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы