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

Memesan hasil yang ditetapkan secara acak di mongo

Saya harus setuju:hal termudah untuk dilakukan adalah menginstal nilai acak ke dalam dokumen Anda. Tidak perlu ada rentang nilai yang terlalu besar -- angka yang Anda pilih bergantung pada ukuran hasil yang diharapkan untuk kueri Anda (1.000 - 1.000.000 bilangan bulat berbeda seharusnya cukup untuk sebagian besar kasus).

Saat Anda menjalankan kueri, jangan khawatir tentang bidang acak -- sebagai gantinya, indeks dan gunakan untuk mengurutkan. Karena tidak ada korespondensi antara nomor acak dan dokumen, Anda harus mendapatkan hasil yang cukup acak. Perhatikan bahwa tabrakan kemungkinan akan mengakibatkan dokumen dikembalikan secara alami.

Sementara ini adalah tentu saja peretasan, Anda memiliki rute pelarian yang sangat mudah:mengingat sifat bebas skema MongoDB, Anda cukup berhenti memasukkan bidang acak setelah ada dukungan untuk pengurutan acak di server. Jika ukuran menjadi masalah, Anda dapat menjalankan tugas batch untuk menghapus bidang dari dokumen yang ada. Seharusnya tidak ada perubahan signifikan dalam kode klien Anda jika Anda mendesainnya dengan cermat.

Pilihan alternatif adalah berpikir panjang dan keras tentang jumlah hasil yang akan diacak dan dikembalikan untuk kueri yang diberikan. Mungkin tidak terlalu mahal untuk hanya melakukan pengacakan dalam kode klien (yaitu, jika Anda hanya mempertimbangkan 10.000 posting terbaru).



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Pengecualian:tidak dapat mengonversi dari tipe BSON EOO ke Tanggal

  2. Kumpulan Mesin &Profil Cloud untuk MongoDB

  3. Arsitek untuk Keamanan :Panduan untuk MongoDB

  4. MongoDB menyisipkan float ketika mencoba memasukkan integer

  5. Hashing kata sandi luwak