Как найти «По имени» в мангусте - PullRequest
2 голосов
/ 01 июня 2019

Я пытаюсь получить значения базы данных, используя определенное имя. Я хочу получить все книги, написанные автором.

Это мой код для получения имени автора и поиска всех книг, которые он написал в BookDB с использованием оператора Like, как в mysql

//get books by author name
router.route('/authorName').get((req, res) => {
    let authorName = req.params.authorName; //how can i pass this value to below regex command
    BookDB.find({"firstName": /authorName/}, (err, books) => {
        if(err) throw err;
        res.status(200).send(books);
    });
});

Проблема: Как передать authorName на {"firstName": / authorName /} . Как я уже писал, неправильно установлен authorName.

Ответы [ 2 ]

0 голосов
/ 01 июня 2019

Я провел небольшое исследование и обнаружил $regex.

//get books by author name
router.route('/authorName').get((req, res) => {
    let authorName = req.params.authorName;
    BookDB.find({firstName: {$regex: `${authorName}`}}, (err, books) => {
        if(err) throw err;
        res.status(200).send(books);
    });
});

Это найдет все результаты, содержащие эту конкретную строку authorName в BookDB базе данных

0 голосов
/ 01 июня 2019

Я не уверен в части мангуста, но вы также можете создавать регулярные выражения как: новый RegExp (exp: строка, флаги: строка)

Обратите внимание: если вы используете этот формат, начальная и конечная косая черта не имеют специального значения, они означают, что строка начинается с косой черты

...