如何在 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'
})
你好格雷格
我有一个 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'
})
你好格雷格