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

Menemukan dokumen berikutnya di MongoDb

Yang terbaik adalah menambahkan sort() explicit eksplisit kriteria jika Anda menginginkan urutan hasil yang dapat diprediksi.

Dengan asumsi urutan yang Anda cari adalah "urutan penyisipan" dan Anda menggunakan ObjectIds bawaan MongoDB, maka Anda dapat membuat kueri berdasarkan ObjectId:

// Find next product created
db.products.find({_id: {$gt: ObjectId("4fdbaf608b446b0477000142") }}).limit(1)

Perhatikan bahwa contoh ini hanya berfungsi karena:

  • empat byte pertama ObjectId dihitung dari stempel waktu gaya unix (lihat:Spesifikasi ObjectId )
  • kueri pada _id sendiri akan menggunakan _id default indeks (diurutkan berdasarkan id) untuk menemukan kecocokan

Jadi sungguh, pengurutan implisit ini sama dengan:

db.products.find({_id: {$gt: ObjectId("4fdbaf608b446b0477000142" )}}).sort({_id:1}).limit(1);

Jika Anda menambahkan lebih banyak kriteria ke kueri untuk memenuhi syarat, cara menemukan produk "berikutnya" (misalnya, category ), kueri dapat menggunakan indeks yang berbeda dan urutannya mungkin tidak seperti yang Anda harapkan.

Anda dapat memeriksa penggunaan indeks dengan explain() .



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. bson.D vs bson.M untuk menemukan kueri

  2. MongoDB vs CouchDB (Optimasi kecepatan)

  3. Kesalahan pemilihan server Docker dan mongo-go-driver

  4. Bagaimana saya bisa menggunakan add-on mongolab ke Heroku dari python?

  5. Spring data mongodb tidak menutup koneksi mongodb