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

Добрый вечер.
Как из коллекции MongoDB выбрать случайный документ?
  • Вопрос задан
  • 3208 просмотров
Пригласить эксперта
Ответы на вопрос 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. Работает замечательно, через индексы, без всяких извращений.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы