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