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

Kueri MongoDB $in dengan array elemen regex

Menggunakan $in bisa cukup efisien dengan array kecil tetapi tidak begitu baik dengan daftar besar karena akan melompati indeks untuk menemukan dokumen yang cocok, atau menelusuri seluruh koleksi jika tidak ada indeks untuk digunakan.

Selain menggunakan $in dengan ekspresi reguler, Anda dapat menggunakan pola regex yang dibatasi pipa dengan daftar kata kunci seperti ini:

Uji dokumen:

db.papertest.insert([
    { category: "ad bd cd" },
    { category: "dd ed fd" },
    { category: "gd hd id" },
    { category: "jd kd ld" },
    { category: "md nd od" },
    { category: "pd qd rd" },
    { category: "sd td ud" },
    { category: "vd wd xd yd zd" },
]);

Keajaiban:

var keywords = ["xd", "sd", "ad"],
    regex = keywords.join("|");

db.papertest.find({
    "category": {
        "$regex": regex, 
        "$options": "i"
    } 
});

Hasilnya

{ "_id" : ObjectId("56bb6f171bb4f693057c0ba4"), "category" : "ad bd cd" }
{ "_id" : ObjectId("56bb6f171bb4f693057c0baa"), "category" : "sd td ud" }
{ "_id" : ObjectId("56bb6f171bb4f693057c0bab"), "category" : "vd wd xd yd zd" }


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB C# Kueri untuk 'Suka' pada string

  2. Membatasi hasil di MongoDB tetapi masih mendapatkan hitungan penuh?

  3. Bagaimana cara membuat paginasi dengan Mongoose di Node.js?

  4. Gunakan lebih dari satu skema per koleksi di mongodb

  5. MongoDB - ukuran file sangat besar dan terus bertambah