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
もサニタイズする必要があります 考えている許可されたパラメータによって異なります。