在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
操作符:
$文档和示例