为什么我在mongodb中找不到任何使用空间的东西

时间:2017-01-05 15:38:40

标签: regex mongodb search

例如,我的文件有一个字段,值是'黑衣人',我用正则表达式搜索男人或者黑或黑,系统可以找到记录,我用'黑衣人'搜索它没有结果回来,但是我使用'men.in.black'搜索它没关系,为什么?如何利用空间来寻找它?谢谢

2 个答案:

答案 0 :(得分:1)

可能你的正则表达式不正确。使用\b指定字词边界并列出您要搜索的所有字词:

db.test.find({field:{$regex:/\b(man|in|black)\b/}})
  • "主要是黑色" - 好的
  • "红衣女子"
  • "粉红色的女人" - 好的

答案 1 :(得分:0)

空格在正则表达式中表示为^(?!US$).+ //disallow whole string match ^(?!.*US).+ //disallow partial matches

\s代表任何符号,它也会匹配空格,但这可能不是你想要的。

我想你应该得到关于正则表达式的一些教程,或者至少阅读Wiki page