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» в определенном поле