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

Node.js 如何在正则表达式的MongoDB中搜索与给定字符串的匹配项?,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,我有一个Mongo数据库,我正在通过Mongoose和Node.js访问它。数据库包含一系列名为Machine的项。每台机器都有一个字段,该字段存储为字符串,但表示一个正则表达式。我们希望获取一个给定的字符串(由用户提供),并对照数据库中的所有正则表达式进行检查,以找到任何可能的匹配项。我知道您可以通过regex搜索数据库,如下所示: Machines.find({subject: {$regex: hi}}).exec(function(err, results) { // do st

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

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

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

您可以使用
$where
:

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