正则表达式匹配mongodb中的整个单词

时间:2015-10-04 17:15:09

标签: javascript regex mongodb

我想在MongoDB中搜索结果,如下面的场景。

我有Hello World, I am here.

等数据

我的查询是:

{"$or": [{"data.title": {"$regex":  search}}]}; //search = Hello

所以我用$ regex搜索它。但问题是如果我输入search = H,那么它再次返回数据

我想在完整单词的基础上搜索。 (例如:Hello或World)不是基于字符(例如:H或e)

1 个答案:

答案 0 :(得分:6)

您可以使用\ b(单词边界)运算符,例如:

{"$or": [{"data.title": {"$regex": /\bHello\b/i}}]}

通过这种方式,搜索" / \ bH \ b /"赢得了比赛"你好"。

否则,在标题字段上使用$ text索引,然后执行$ text搜索:

{"$or": [{$text:{$search:"Hello"}}]}

有关文本搜索的详细信息,请查看文档:{​​{3}}