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

Pencarian Kabur dengan Mongodb?

Saya percaya bahwa untuk melakukan pencarian "kabur" Anda harus menggunakan regex. Ini akan menyelesaikan apa yang Anda cari (sumber fungsi escapeRegex di sini):

function escapeRegex(text) {
    return text.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
};

router.get("/", function(req, res) {
    if (req.query.search) {
       const regex = new RegExp(escapeRegex(req.query.search), 'gi');
       Jobs.find({ "name": regex }, function(err, foundjobs) {
           if(err) {
               console.log(err);
           } else {
              res.render("jobs/index", { jobs: foundjobs });
           }
       }); 
    }
}

Karena itu, aplikasi Anda dapat mengalami masalah kinerja saat menanyakan mongo dengan regex. Menggunakan perpustakaan seperti indeks pencarian untuk pencarian dapat membantu mengoptimalkan kinerja aplikasi Anda, dengan manfaat tambahan dari pencarian kata dasar (seperti mengembalikan "ditemukan" dari "temukan").

PEMBARUAN:Jawaban asli saya termasuk ekspresi reguler sederhana yang akan membuat aplikasi Anda rentan terhadap serangan DDoS regex. Saya telah memperbarui dengan ekspresi ekspresi reguler yang "aman".



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Lembar Cheat Kinerja untuk MongoDB

  2. MongoDB sebagai Basis Data Deret Waktu

  3. Node.js, Mongo menemukan dan mengembalikan data

  4. mongorestore Gagal:tidak ada server yang dapat dijangkau

  5. memahami sistem cache MongoDB