Вы должны сначала отфильтровать объект res.query
по неопределенным / пустым значениям, а затем передать его в функцию find
. Если у вас есть только несколько свойств, вы можете использовать оператор if
:
const query = req.query;
const conditions = {};
if (query.what) {
conditions.what = query.what;
}
if (query.where) {
conditions.where = query.where;
}
....
Sound.find(conditions, function () {});
Или, если есть много свойств, вы можете перебирать их:
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 () {});
Кроме того, я бы не советовал удалять свойства из фактического res.query
объекта - delete res.query.what
- потому что вы не сможете использовать его в другом промежуточном программном обеспечении, если захотите.