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

Tambahkan komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *