Vous n'avez pas besoin d'appeler Query#where
à plusieurs reprises, puisque vous pouvez passer toutes les conditions à Mongoose Model#find
comme :
var filteredQuery = {},
acceptableFields = ['gender', 'race', /* etc */ ];
acceptableFields.forEach(function(field) {
req.query[field] && filteredQuery[field] = req.query[field];
});
var query = Character.find(filteredQuery);
Vous voudrez également désinfecter req.query
en fonction des paramètres autorisés que vous avez en tête.