Creo que para hacer una búsqueda "difusa" necesitará usar expresiones regulares. Esto debería lograr lo que está buscando (fuente de la función escapeRegex aquí):
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 });
}
});
}
}
Dicho esto, su aplicación puede experimentar problemas de rendimiento al consultar mongo por expresiones regulares. El uso de una biblioteca como search-index para la búsqueda podría ayudar a optimizar el rendimiento de su aplicación, con el beneficio adicional de buscar raíces de palabras (como devolver "encontrado" de "encontrar").
ACTUALIZACIÓN:Mi respuesta original incluía una expresión regular simple que dejaría su aplicación vulnerable a un ataque DDoS de expresiones regulares. Actualicé con una expresión regular escapada "segura".