Mongodb: як вибрати випадкову вибірку документів


Ви можете використовувати такий синтаксис, щоб вибрати випадкову вибірку документів із колекції в MongoDB:

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

У цьому конкретному прикладі вибирається випадкова вибірка з 4 документів із колекції під назвою myCollection .

Щоб вибрати випадкову вибірку іншого розміру, просто змініть значення в аргументі size .

У наступному прикладі показано, як використовувати цей синтаксис на практиці з командою збору, яка має такі сім документів:

 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 документів із колекції команд :

 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 }

Зауважте, що до цієї випадкової вибірки включено такі чотири команди:

  • Торговці вином
  • Ракети
  • Mavs
  • Сітки

Якщо ми знову використаємо функцію $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” у певному полі

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *