我已经尝试了一些方法来使此工作正常进行,但始终失败。我在一个字段上有一个正则表达式查询,但是我想要实现的是在字符串的开头进行搜索。即,如果您搜索edi,您将得到爱丁堡。
我有以下正则表达式查询
Locations.find({name : { $regex: location + ".*", $options: 'ix'}}).fetch()
我读到有关使用选项m和^的信息,但是它无法检索任何结果。
要使用位置变量中的regex模式,请构造一个新的RegExp对象,例如,与所有以location值开头的名称进行匹配,不区分大小写
Locations.find({name : new RegExp('^'+location+'.*', "i")}).fetch()
但是,不区分大小写的正则表达式对索引的效率不高,“ $ regex仅在正则表达式具有字符串开头(即^)的锚并且区分大小写的匹配项时,才可以有效地使用索引
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句