Mongodb: como selecionar uma amostra aleatória de documentos


Você pode usar a seguinte sintaxe para selecionar uma amostra aleatória de documentos de uma coleção no MongoDB:

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

Este exemplo específico seleciona uma amostra aleatória de 4 documentos da coleção chamada myCollection .

Para escolher uma amostra aleatória de tamanho diferente, basta alterar o valor no argumento size .

O exemplo a seguir mostra como usar essa sintaxe na prática com uma equipe de coleta que possui os sete documentos a seguir:

 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})

Exemplo: Selecione uma amostra aleatória de documentos no MongoDB

O código a seguir mostra como selecionar uma amostra aleatória de 4 documentos da coleção de equipes :

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

Esta consulta retorna os seguintes documentos:

 { _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 }

Observe que as quatro equipes a seguir estão incluídas nesta amostra aleatória:

  • Comerciantes de vinho
  • Foguetes
  • Mavs
  • Redes

Se usarmos a função $sample novamente, ela selecionará outra amostra aleatória de documentos, o que significa que não há garantia de que o mesmo conjunto de documentos será escolhido.

Por exemplo, suponha que selecionamos outra amostra aleatória de 4 documentos da coleção da equipe :

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

Esta consulta retorna os seguintes documentos:

 { _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 }

As quatro equipes a seguir estão incluídas nesta amostra aleatória:

  • Foguetes
  • Redes
  • Vespas
  • Guerreiros

Observe que esta amostra aleatória não corresponde perfeitamente à amostra aleatória do exemplo anterior.

Nota : Você pode encontrar a documentação completa da função $sample aqui .

Recursos adicionais

Os tutoriais a seguir explicam como realizar outras operações comuns no MongoDB:

MongoDB: Como verificar se o campo contém uma string
MongoDB: Como usar uma consulta “NO IN”
MongoDB: Como consultar “NOT NULL” em um campo específico

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *