Reputation: 837
I have a find statement like this
collSession.find({"Venue.type": /.*MT.*/}).toArray(function (err, _clsSession)
{
console.log(_clsSession);
});
It is giving answer.But i need to some value of variable instead of that harcoded value MT. How to achieve this ? Thanks.
UPDATE I tried like "/."+searchterm+"./" Its not working.
Upvotes: 4
Views: 2733
Reputation: 457
Take a look at this code: (I'm using mongoose)
exports.getSearchPosts = (req, res, next) => {
const keyword = req.body.keyword;
Post.find({ postTitle: new RegExp( ".*" + keyword + ".*" ) }).then(posts => {
res.render('post/search', {
pageTitle: 'Search result for: ' + keyword,
posts: posts,
category: postCategory,
posts: catPost,
});
}).catch(err => console.log(err));
}
I think you will find it helpful
Upvotes: 0
Reputation: 8642
Try this:
var pattern = 'concatenate string' + here,
regexp = new Regexp(pattern);
Upvotes: 1
Reputation: 69703
Instead of using the inline syntax to create a regular expression, you can also use the RegExp object to create one based on a string
var searchPhrase = "MT";
var regularExpression = new RegExp(".*" + searchPhrase + ".*");
collSession.find({"Venue.type": regularExpression}) [...]
Upvotes: 5