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).