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

Abaikan nilai tidak terdefinisi yang diteruskan dalam parameter objek kueri untuk fungsi Temukan Mongoose?

Anda harus memfilter res.query objek dari nilai yang tidak ditentukan/kosong terlebih dahulu, lalu meneruskannya ke find fungsi. Jika Anda hanya memiliki beberapa properti, Anda dapat menggunakan if pernyataan:

const query = req.query;
const conditions = {};

if (query.what) {
  conditions.what = query.what;
}

if (query.where) {
  conditions.where = query.where;
}

....


Sound.find(conditions, function () {});

Atau jika ada banyak properti, Anda dapat mengulanginya:

const query = req.query;
const conditions = Object.keys(query)
  .reduce((result, key) => {
    if (query[key]) {
      result[key] = query[key];
    }
    return result;
}, {}); 

Sound.find(conditions, function () {});

Juga, saya tidak menyarankan untuk menghapus properti dari res.query yang sebenarnya objek - delete res.query.what - karena Anda tidak akan dapat menggunakannya di middleware lain jika Anda mau.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. mongo 3 duplikat pada indeks unik - dropDups

  2. Mongodb:mengapa show dbs tidak menampilkan database saya?

  3. Bagaimana cara mengembalikan hasil Mongoose dari metode find?

  4. parameter include_type_name disetel ke true di node.js

  5. Kesalahan saat memasukkan dokumen dalam koleksi sharded MongoDB yang dibuat dengan CLI