首页 > 解决方案 > 如何使用文本匹配进行过滤?

问题描述

我想在 mongodb 和节点中进行查询,以匹配文本进行过滤。

我试图将参数发送并在开头和结尾用斜杠连接,但它不起作用。

const {filterTerm} = req.body;
    const slash1 = "/";
    const slash2 = "/";

    const term = slash1.concat(filterTerm);
    const finalTerm = term.concat(slash2);

    console.log(finalTerm);

    Bookings.find({$or: [{email: finalTerm}, {phone: finalTerm}]})
        .exec((err, docs) => {
            res.json(docs);
        });`

标签: node.jsmongoose

解决方案


使用正则表达式

const finalTerm = term.concat(slash2);
Bookings
  .find({$or: [{email: new RegExp(finalTerm, 'gi') }, {phone: new RegExp(finalTerm, 'gi') }]})
  .exec((err, docs) => {
      res.json(docs);
  });

推荐阅读