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

Bagaimana cara meminta MongoDB untuk menguji apakah suatu item ada?

Karena Anda tidak memerlukan hitungan, Anda harus memastikan kueri akan kembali setelah menemukan kecocokan pertama. Karena kinerja hitungan tidak ideal, itu agak penting. Kueri berikut harus menyelesaikannya:

db.Collection.find({ /* criteria */}).limit(1).size();

Perhatikan bahwa find().count() secara default tidak tidak menghormati limit klausa dan karenanya mungkin mengembalikan hasil yang tidak terduga (dan akan mencoba menemukan semua kecocokan). size() atau count(true) akan menghormati bendera batas.

Jika Anda ingin berlebihan, Anda harus memastikan bahwa kueri Anda menggunakan indeks tertutup. Indeks tercakup hanya mengakses indeks, tetapi mereka mengharuskan bidang yang Anda kueri diindeks. Secara umum, itu harus dilakukan karena count() jelas tidak mengembalikan bidang apa pun. Namun, indeks tertutup terkadang membutuhkan kursor yang agak bertele-tele:

db.values.find({"value" : 3553}, {"_id": 0, "value" : 1}).limit(1).explain();

{
  // ...
  "cursor" : "BtreeCursor value_1",
  "indexOnly" : true,  // covered!
}

Sayangnya, count() tidak menawarkan explain() , jadi apakah itu layak atau tidak sulit untuk dikatakan. Seperti biasa, pengukuran adalah pendamping yang lebih baik daripada teori, tetapi teori setidaknya dapat menyelamatkan Anda dari masalah yang lebih besar.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Bagaimana Melakukan Operasi Query Dasar di MongoDB

  2. mongo 3 duplikat pada indeks unik - dropDups

  3. Cara Menghubungkan Ke Deployment MongoDB Anda Menggunakan Robo 3T GUI

  4. Tambahkan data ke file gridfs yang ada

  5. Google Cloud Mongo DB:IP Eksternal tidak terhubung