我在集合中的'num'字段上创建了一个文本索引。现在,在传递字符串以从文本索引中搜索时,我需要使用必须作为字符串传递给$ search变量的正则表达式。
我当前的查询工作正常,但是当我向其添加正则表达式时它不起作用。
当前查询:
db.collection.find({$text:{$search:"1234 6789"}},{'id':1})
我需要在$ search中添加一个正则表达式/类似查询,使其类似于
db.collection.find({$text:{$search:"/1234/ /6789/"}},{'id':1})
我从数据库中获取包含“1234”或“6789”之类的模式的所有值。
我确实尝试了查询,但它给了我一个$ search需要一个字符串错误:
db.collection.find({$text:{$search:/1234/}},{'id':1})
答案 0 :(得分:3)
要实现这一点,您应该使用$ regex MongoDB运算符:
// Without options
db.collection.find({num: /1234|5678/i});
// Separate options property
db.collection.find({num: {$regex: /1234|5678/, $options: 'i'}});
要在正则表达式中添加多个术语,请使用|操作
编辑:
要使用值数组查询记录,可以使用$in
运算符: