MongoDB: как выбрать случайный образец документов


Вы можете использовать следующий синтаксис для выбора случайной выборки документов из коллекции в MongoDB:

db.myCollection.aggregate([ { $sample : { size: 4 } } ])

Этот конкретный пример выбирает случайную выборку из 4 документов в коллекции под названием myCollection .

Чтобы выбрать случайную выборку другого размера, просто измените значение аргумента размера .

В следующем примере показано, как использовать этот синтаксис на практике с группами сбора со следующими семью документами:

db.teams.insertOne({team: " Mavs", points: 31})
db.teams.insertOne({team: " Spurs", points: 22})
db.teams.insertOne({team: " Rockets", points: 19})
db.teams.insertOne({team: " Warriors", points: 26})
db.teams.insertOne({team: " Cavs", points: 33})
db.teams.insertOne({team: " Hornets", points: 30})
db.teams.insertOne({team: " Nets", points: 14})

Пример: выберите случайную выборку документов в MongoDB

В следующем коде показано, как выбрать случайную выборку из 4 документов из коллекции Teams :

db.teams.aggregate([ { $sample : { size: 4 } } ])

Этот запрос возвращает следующие документы:

{ _id: ObjectId("6203ee711e95a9885e1e765d"),
 team: 'Cavs',
 points: 33 }
{ _id: ObjectId("6203ee711e95a9885e1e765b"),
 team: 'Rockets',
 points: 19 }
{ _id: ObjectId("6203ee711e95a9885e1e7659"),
 team: 'Mavs',
 points: 31 }
{ _id: ObjectId("6203ee711e95a9885e1e765f"),
 team: 'Nets',
 points: 14 } 

Обратите внимание, что в эту случайную выборку включены следующие четыре команды:

  • Кавс
  • Ракеты
  • Мавс
  • сети

Если мы снова воспользуемся функцией $sample , она выберет другую случайную выборку документов, а это означает, что нет гарантии, что будет выбран тот же самый набор документов.

Например, предположим, что мы выбираем еще одну случайную выборку из 4 документов из коллекции команд :

db.teams.aggregate([ { $sample : { size: 4 } } ])

Этот запрос возвращает следующие документы:

{ _id: ObjectId("6203ee711e95a9885e1e765b"),
 team: 'Rockets',
 points: 19 }
{ _id: ObjectId("6203ee711e95a9885e1e765f"),
 team: 'Nets',
 points: 14 }
{ _id: ObjectId("6203ee711e95a9885e1e765e"),
 team: 'Hornets',
 points: 30 }
{ _id: ObjectId("6203ee711e95a9885e1e765c"),
 team: 'Warriors',
 points: 26 } 

В эту случайную выборку включены следующие четыре команды:

  • Ракеты
  • сети
  • Шершни
  • Воины

Обратите внимание, что эта случайная выборка не полностью соответствует случайной выборке из предыдущего примера.

Примечание.Полную документацию по функции $sample можно найти здесь .

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные операции в MongoDB:

MongoDB: как проверить, содержит ли поле строку
MongoDB: как использовать запрос «НЕ В»
MongoDB: как запросить «NOT NULL» в определенном поле

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.