在MongoDB中使用带有文本search的正则expression式

我在集合中的“num”字段上创build了一个文本索引。 现在,当传递string从文本索引search时,我需要使用一个正则expression式,它必须作为string传递给$ searchvariables。

我目前的查询工作正常,但它不工作,当我添加一个正则expression式。

当前查询:

db.collection.find({$text:{$search:"1234 6789"}},{'id':1}) 

我需要添加一个正则expression式/像查询到$search,使之类似

 db.collection.find({$text:{$search:"/1234/ /6789/"}},{'id':1}) 

在那里我从数据库中获取所有包含“1234”或“6789”等模式的值。

我没有尝试查询,但它给了我一个$search需要一个string错误:

 db.collection.find({$text:{$search:/1234/}},{'id':1}) 

为了达到这个目的,你应该使用$ regex MongoDB操作符:

 // Without options db.collection.find({num: /1234|5678/i}); // Separate options property db.collection.find({num: {$regex: /1234|5678/, $options: 'i'}}); 

要在正则expression式中添加多个项,请使用| 操作者

$正则expression式文档和示例

编辑:

对于使用值数组查询logging$in可以使用$in操作符:

$文档和示例