Вы можете использовать следующий синтаксис для выбора случайной выборки документов из коллекции в 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» в определенном поле