Devi filtrare il tuo res.query
prima l'oggetto da valori non definiti/vuoti, quindi passalo a find
funzione. Se hai solo un paio di proprietà, puoi utilizzare if
dichiarazione:
const query = req.query;
const conditions = {};
if (query.what) {
conditions.what = query.what;
}
if (query.where) {
conditions.where = query.where;
}
....
Sound.find(conditions, function () {});
Oppure, se ci sono molte proprietà, puoi scorrere su di esse:
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 () {});
Inoltre, non consiglierei di rimuovere le proprietà dall'attuale res.query
oggetto - delete res.query.what
- perché non potrai utilizzarlo in un altro middleware se lo desideri.