I try make a mongoose query using a function like this:
/*
* @param {function} Model - Mongoose Model
* @param {String} searchText- Text that will
Use the bracket notation to create the query object dynamically, so you could restructure your function as follows:
function _partialSearch (Model, searchText, key, res) {
var search = new RegExp(searchText, "i"),
query = {};
query[key] = { $regex : search };
Model.find(query)
.exec(function (err, docs) {
if(err) log(err);
else {
res.json(docs);
}
});
}
You can't directly use a variable as an object key like that, but assuming you're using Node.js 4.0 or above, you can use its ES6 support for computed property names to do this by surrounding key
in brackets:
Model.find({ [key] : { $regex : search } })