Не е необходимо да извиквате Query#where
многократно, тъй като можете да предадете всички условия на Mongoose Model#find
като:
var filteredQuery = {},
acceptableFields = ['gender', 'race', /* etc */ ];
acceptableFields.forEach(function(field) {
req.query[field] && filteredQuery[field] = req.query[field];
});
var query = Character.find(filteredQuery);
Също така ще искате да дезинфекцирате req.query
в зависимост от разрешените параметри, които имате предвид.