使用Express过滤MongoDB,使用SQL LIKE运算符过滤自定义URL

时间:2017-07-24 10:05:19

标签: node.js mongodb express

如何使用“express”创建一个SQL LIKE运算符:“^ 4.15.3”和“mongodb”:“^ 2.2.30”使用URL传递参数?后端看起来像这样。

app.get('/api/issues', (req, res) => {
const filter = {};
if (req.query.transaction) filter.transaction = req.query.transaction;

db.collection('issues').find(filter).toArray()
    .then((issues) => {
      res.json({
        records: issues,
      });
    });
};

网址如下所示。 http://localhost:3000/api/issues?transaction=/match/

在SQL中它将是:http://localhost:3000/api/issues?transaction=%match%

查询确切的项目时,它可以正常运行:http://localhost:3000/api/issues?transaction=someItem

以下不会起作用:

http://localhost:3000/api/issues?transaction=/match/

http://localhost:3000/api/issues?transaction= *匹配。 *

当对值进行硬编码时,它会按预期返回所有条目。

db.collection('issues').find({transaction: /match/}).toArray() ...

我将问题追溯到插入的引号。因此,而不是/ match / find()方法接收“/match/".A. String.replace('”','')没有解决问题所以我没有想法。

0 个答案:

没有答案