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” у певному полі