Mongodb: come selezionare un campione casuale di documenti


Puoi utilizzare la seguente sintassi per selezionare un campione casuale di documenti da una raccolta in MongoDB:

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

Questo particolare esempio seleziona un campione casuale di 4 documenti dalla raccolta denominata myCollection .

Per scegliere un campione casuale di dimensione diversa, è sufficiente modificare il valore nell’argomento dimensione .

L’esempio seguente mostra come utilizzare questa sintassi nella pratica con un team di recupero che dispone dei seguenti sette documenti:

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

Esempio: seleziona un campione casuale di documenti in MongoDB

Il codice seguente mostra come selezionare un campione casuale di 4 documenti dalla raccolta dei team :

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

Questa query restituisce i seguenti documenti:

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

Si noti che le seguenti quattro squadre sono incluse in questo campione casuale:

  • Commercianti di vino
  • Razzi
  • Mav
  • Reti

Se utilizziamo nuovamente la funzione $sample , selezionerà un altro campione casuale di documenti, il che significa che non vi è alcuna garanzia che verrà scelto lo stesso insieme di documenti.

Ad esempio, supponiamo di selezionare un altro campione casuale di 4 documenti dalla raccolta del team :

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

Questa query restituisce i seguenti documenti:

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

Le seguenti quattro squadre sono incluse in questo campione casuale:

  • Razzi
  • Reti
  • Calabroni
  • Guerrieri

Si noti che questo campione casuale non corrisponde perfettamente al campione casuale dell’esempio precedente.

Nota : puoi trovare la documentazione completa per la funzione $sample qui .

Risorse addizionali

I seguenti tutorial spiegano come eseguire altre operazioni comuni in MongoDB:

MongoDB: come verificare se il campo contiene una stringa
MongoDB: come utilizzare una query “NO IN”.
MongoDB: come interrogare “NOT NULL” in un campo specifico

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *