mongoose:如何在variables中创build特定的字段标准

我试图有一个先进的search表单,采取多种标准,并包括他们在mongoosesearch,这是我想的方法

router.post('/search/university', function(req, res) { var university = req.body.university.toLowerCase(); var searchCriteria = education_key + ":" + {$RegExp("^" + university)}; User.find({searchCriteria}, function(err, matching_users){ res.render('searchresults', {user_array : matching_users, school : req.body.university}); }); }); 

但是,我不能像这样构buildsearchCriteria,因为显然有括号,而这些不起作用。

您应该将其作为JavaScript对象进行操作,而不是试图构buildstring:

 router.post('/search/university', function(req, res) { var university = req.body.university.toLowerCase(); var searchCriteria = { "education_key": {}}; searchCriteria["education_key"] = { "$regex": "^" + university }; User.find(searchCriteria, function(err, matching_users){ res.render('searchresults', {user_array : matching_users, school : req.body.university}); }); }); 

$regex操作符是可选的,但确保序列化正常工作的安全方法