mongo正则表达式查询中的多个条件

时间:2016-08-04 19:30:16

标签: regex mongodb

我想以任何顺序匹配db中Url字段同时包含shouldmatch的所有文档。

例如,那些应匹配:

http://www.myurl.com/should/match

http://www.myurl.com/match/should

但不是http://www.myurl.com/no/match

我尝试了几个正则表达式,但没有匹配。即:

db.mycollection.find({"Url":/^(?=.*\should\b)(?=.*\match\b).*$/})

不返回任何匹配项。

感谢任何帮助。 最诚挚的问候

1 个答案:

答案 0 :(得分:0)

在设置结束边界时,使用\b在正则表达式中设置这些单词的起始边界

db.mycollection.find( { "Url": /^(?=.*\bshould\b)(?=.*\bmatch\b).*$/ } ) 

收集文件

{ "Url" : "http://www.myurl.com/should/match" }
{ "Url" : "http://www.myurl.com/match/should" }
{ "Url" : "http://www.myurl.com/no/match" }

它返回

{ "Url" : "http://www.myurl.com/should/match" }
{ "Url" : "http://www.myurl.com/match/should" }