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

Bagaimana saya bisa tahu jika ada lebih banyak hasil dari kueri di MongoDB?

MongoDB memiliki kursor yang dapat disesuaikan , yang memungkinkan Anda menggunakan kembali kursor setelah semua data dikembalikan. Itu akan terlihat seperti ini:

n = 10
docs = db.documents.find({"foo": "bar"}).limit(n)
more = docs.hasNext()

Perhatikan bahwa hanya ada 10 dokumen yang diambil, tetapi kursor dapat diperiksa untuk menentukan apakah ada lebih banyak objek yang tersedia. Satu-satunya masalah adalah bahwa kursor tailable hanya dapat digunakan pada koleksi yang dibatasi.

Di atas juga dapat digunakan dengan kursor biasa, tetapi Anda harus menanyakan n + 1 dokumen. Ini pada dasarnya adalah solusi yang sama seperti yang Anda gunakan sekarang. Anda harus menggunakan size() meskipun, karena itu memperhitungkan pengubah lewati dan batas.

n = 10
docs = db.documents.find({"foo": "bar"}).limit(n + 1)
more = db.size() > n

Saya tidak terbiasa dengan PyMongo, jadi saya tidak tahu pasti, tetapi ada kemungkinan solusi ini mengirimkan n + 1 dokumen lengkap ke aplikasi Anda, bukan n yang diperlukan , menghasilkan overhead bandwidth yang kecil. Jika demikian, Anda mungkin ingin membuat fungsi sisi server yang melakukan hal yang sama, tetapi hanya mengembalikan objek yang berisi n dokumen dalam larik, dan tanda yang menunjukkan jika n + 1 dokumen tersedia.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Tidak dapat memulai MongoDB sebagai layanan

  2. Paspor Facebook dengan JWT

  3. MongoDB, hapus objek dari array

  4. di mana direktori instalasi default untuk mongodb

  5. bagaimana cara menggunakan mongoDB sebagai mesin pencari?