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

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

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

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽