MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Sampel acak dari MongoDB mengembalikan hasil yang sangat miring

Pada MongoDB 3.4.9, sebagian dari alasan bias yang Anda amati adalah $sample hampir seluruhnya bergantung pada implementasi kursor acak mesin penyimpanan (lihat SERVER-19183 ). Hal ini dilakukan agar $sample bisa menjadi performan ketika koleksi berisi banyak data. Namun, karena mesin penyimpanan menyimpan dokumen dalam urutan yang diurutkan menggunakan implementasi tipe B-tree, tidak selalu memungkinkan untuk membuat hasil yang benar-benar acak.

Saat ini ada dua permintaan fitur untuk $sample yang lebih baik mekanik, yaitu SERVER-22069 dan SERVER-22068 .

Karena itu, jika Anda memerlukan sampel data yang benar-benar tidak bias, gulung $sample Anda sendiri -seperti solusi kemungkinan merupakan cara terbaik untuk melanjutkan pada saat ini. Sesuatu seperti:

  1. Dapatkan daftar semua _id dalam koleksi.
  2. Lakukan pengambilan sampel acak pada daftar ini (mis. menggunakan acak dari Python .pilihan ).
  3. Dapatkan semua dokumen yang relevan menggunakan sampel _id , yang akan cukup berkinerja tergantung pada ukuran sampel yang Anda inginkan, karena _id selalu diindeks.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Menjalankan mongodb di ubuntu 16.04 LTS

  2. MongoDB PILIH JUMLAH KELOMPOK OLEH

  3. tidak dapat melakukan panggilan istirahat

  4. Kueri Mongo di Subbidang

  5. Buka:Buat antarmuka io.Writer untuk masuk ke database mongodb