Ik geloof dat je regex moet gebruiken om "fuzzy" te zoeken. Dit zou moeten volbrengen wat u zoekt (escapeRegex-functiebron hier):
function escapeRegex(text) {
return text.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
};
router.get("/", function(req, res) {
if (req.query.search) {
const regex = new RegExp(escapeRegex(req.query.search), 'gi');
Jobs.find({ "name": regex }, function(err, foundjobs) {
if(err) {
console.log(err);
} else {
res.render("jobs/index", { jobs: foundjobs });
}
});
}
}
Dat gezegd hebbende, kan uw toepassing prestatieproblemen ondervinden bij het opvragen van mongo per regex. Het gebruik van een bibliotheek zoals zoekindex voor zoeken kan helpen de prestaties van uw toepassing te optimaliseren, met het extra voordeel van het zoeken naar woordstammen (zoals het retourneren van "gevonden" van "vinden").
UPDATE:Mijn oorspronkelijke antwoord omvatte een eenvoudige reguliere expressie die uw applicatie kwetsbaar zou maken voor een reguliere DDoS-aanval. Ik heb geüpdatet met een "veilige" ontsnapte regex.