#javascript #node.js #mongodb #express #mongoose
#javascript #node.js #mongodb #выразить #мангуст
Вопрос:
Я пытаюсь создать форму расширенного поиска, которая принимает несколько критериев и включает их в поиск мангуста, это тот подход, о котором я думал
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});
});
});
Однако я не могу просто построить критерии поиска таким образом, потому что, по-видимому, есть круглые скобки и тому подобное, которые не работают.
Ответ №1:
Вы должны манипулировать этим как объектами JavaScript, а не пытаться создавать строки:
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
Оператор является необязательным, но это безопасный способ убедиться, что сериализация работает правильно