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