如何在 MongoDB 正则表达式中搜索与给定字符串的匹配项?

How can I search a MongoDB of regexes for matches against a given string?

我有一个 Mongo 数据库,我正在通过 Mongoose 和 Node.js 访问它。数据库包含一系列名为 Machine 的项目。每个 Machine 都有一个存储为 String 的字段,但代表一个正则表达式。我们想要获取一个给定的字符串(由用户提供)并根据数据库中的所有正则表达式检查它以找到任何可能的匹配项。我知道您可以通过正则表达式搜索数据库,如下所示:

Machines.find({subject: {$regex: hi}}).exec(function(err, results) {
    // do stuff to results
});

但是我该如何做相反的事情呢?

您可以使用 $where:

Machines.find({
    $where: 'new RegExp(this.subject).test(' + '"' + string + '") === true'
})

你好格雷格