Mongodb: cara memilih sampel dokumen secara acak
Anda dapat menggunakan sintaks berikut untuk memilih sampel acak dokumen dari koleksi di MongoDB:
db.myCollection.aggregate([ { $sample : { size: 4 } } ])
Contoh khusus ini memilih sampel acak 4 dokumen dari koleksi bernama myCollection .
Untuk memilih sampel acak dengan ukuran berbeda, cukup ubah nilai di argumen size .
Contoh berikut memperlihatkan cara menggunakan sintaksis ini dalam praktik dengan tim pengumpulan yang memiliki tujuh dokumen berikut:
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})
Contoh: Pilih sampel dokumen secara acak di MongoDB
Kode berikut memperlihatkan cara memilih sampel acak 4 dokumen dari koleksi tim :
db.teams.aggregate([ { $sample : { size: 4 } } ])
Kueri ini mengembalikan dokumen berikut:
{ _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 }
Perhatikan bahwa empat tim berikut dimasukkan dalam sampel acak ini:
- Pedagang anggur
- Roket
- Mav
- Jaring
Jika kita menggunakan fungsi $sample lagi, maka sampel dokumen lain akan dipilih secara acak, artinya tidak ada jaminan bahwa kumpulan dokumen yang sama akan dipilih.
Misalnya, kita memilih sampel acak lain yang terdiri dari 4 dokumen dari koleksi tim :
db.teams.aggregate([ { $sample : { size: 4 } } ])
Kueri ini mengembalikan dokumen berikut:
{ _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 }
Empat tim berikut dimasukkan dalam sampel acak ini:
- Roket
- Jaring
- lebah
- Prajurit
Perhatikan bahwa sampel acak ini tidak cocok dengan sampel acak pada contoh sebelumnya.
Catatan : Anda dapat menemukan dokumentasi lengkap untuk fungsi $sample di sini .
Sumber daya tambahan
Tutorial berikut menjelaskan cara melakukan operasi umum lainnya di MongoDB:
MongoDB: Cara memeriksa apakah bidang berisi string
MongoDB: Cara menggunakan kueri “NO IN”.
MongoDB: Cara menanyakan “NOT NULL” di bidang tertentu