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

Menemukan dokumen MongoDB melalui kata dalam deskripsi bidang di setiap produk dengan Mongoskin

Untuk menemukan melalui sebuah kata, semua produk yang ada dalam koleksi termasuk dalam bidang deskripsi kata itu, Anda memerlukan pencocokan regex dengan case insensitivity. Anda dapat menggunakan kueri berikut (sebagai contoh):

db.product.find({"data.description": /test/i});

di mana i di /test/i menunjukkan ketidakpekaan huruf besar/kecil, sehingga ekspresi reguler cocok dengan bidang deskripsi untuk teks apa pun dengan string "test" . Ekspresi SQL yang setara berikut ini:

select * from product where description like '%test%'

Jadi Anda dapat menggunakan hal yang sama dalam implementasi rute Anda, menggunakan find() metode untuk mengembalikan semua dokumen yang cocok sebagai ganti findOne() yang mengembalikan hanya satu dokumen:

app.get("/description/:id", auth, function(req, res, next) {
    req.collection.find({
        "data.description": /req.params.id/i
    }, function(e, result) {
        if(e) return next(e);
        res.send(result);
    });
});

Opsi lainnya adalah menggunakan $text operator dalam operasi find Anda saat melakukan pencarian teks pada konten bidang yang diindeks dengan indeks teks. Jadi hal pertama yang akan Anda lakukan adalah membuat indeks teks pada kolom deskripsi:

db.collection.createIndex( { "data.description": "text" } )

Setelah itu Anda dapat melakukan kueri menggunakan operator $text. Misalnya, kueri berikut menelusuri istilah kopi:

db.collection.find( { $text: { $search: "coffee" } } )

EDIT :

Semua hal dianggap sama, Anda kemudian dapat memperbarui implementasi rute Anda untuk menggunakan string kueri di URL sebagai gantinya:

app.get("/description", auth, function(req, res, next) {
    req.collection.find({
        $text: { $search: req.params.q }
    }, function(e, result) {
        if(e) return next(e);
        res.send(result);
    });
});

yang dapat Anda kueri di browser Anda sebagai http://localhost/description?q=product




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Apakah database berorientasi dokumen dimaksudkan untuk menggantikan database relasional?

  2. Hash grup Ruby berdasarkan nilai kunci

  3. C# produk kartesius Mongodb dari beberapa dokumen array objek

  4. Cara Mengoptimalkan Kinerja ClusterControl dan Komponennya

  5. Bagaimana MongoEngine menangani Indeks (pembuatan, pembaruan, penghapusan)?