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: как использовать запрос «NO IN»
MongoDB: как запросить «NOT NULL» в определенном поле

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *