Задать вопрос

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

Добрый вечер.
Как из коллекции MongoDB выбрать случайный документ?
  • Вопрос задан
  • 3219 просмотров
Подписаться 3 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 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. Работает замечательно, через индексы, без всяких извращений.
Ответ написан
Ваш ответ на вопрос

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

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