我想以任何顺序匹配db中Url
字段同时包含should
和match
的所有文档。
例如,那些应匹配:
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).*$/})
不返回任何匹配项。
感谢任何帮助。 最诚挚的问候
答案 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" }