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

Bagaimana menemukan catatan acak di Mongoose

Gagasan di balik mendapatkan catatan acak adalah untuk menanyakan semua catatan yang cocok tetapi hanya mendapatkan satu. Inilah yang findOne() melakukannya tanpa kriteria yang diberikan.

Kemudian Anda akan ingin memilih entri acak di semua kemungkinan kecocokan. Ini dilakukan oleh:

  1. Cari tahu berapa banyak kemungkinan entri yang ada - kami menggunakan count() pada koleksi untuk ini. Perhatikan bahwa, seperti yang disebutkan dalam komentar, count sudah usang dalam versi 4 dan seseorang harus menggunakan estimasiDocumentCount atau countDocuments sebagai gantinya. Perbedaannya terletak pada presisi/penggunaan memori antara lain. Berikut postingan SO yang membahasnya sedikit.

  2. Temukan nomor acak dalam hitungan kami.

  3. Gunakan skip() untuk "melompat" ke kecocokan yang diinginkan dan mengembalikannya.

Berikut cuplikan yang dimodifikasi dari jawaban SO ini:

// Get the count of all users
User.count().exec(function (err, count) {

  // Get a random entry
  var random = Math.floor(Math.random() * count)

  // Again query all users but only fetch one offset by our random #
  User.findOne().skip(random).exec(
    function (err, result) {
      // Tada! random user
      console.log(result) 
    })
})


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. $proyek di $lookup mongodb

  2. Mengapa Anda Masih Harus Menggunakan Mesin Penyimpanan MMAPv1 untuk MongoDB

  3. Cara mengaktifkan kueri MongoDB mentah langsung di Ruby

  4. Ekspor Koleksi MongoDB ke File CSV

  5. MongoDB Temukan Kecocokan Array yang Tepat tetapi urutan tidak masalah