我想在MongoDB中搜索结果,如下面的场景。
我有Hello World, I am here.
我的查询是:
{"$or": [{"data.title": {"$regex": search}}]}; //search = Hello
所以我用$ regex搜索它。但问题是如果我输入search = H,那么它再次返回数据
我想在完整单词的基础上搜索。 (例如:Hello或World)不是基于字符(例如:H或e)
答案 0 :(得分:6)
您可以使用\ b(单词边界)运算符,例如:
{"$or": [{"data.title": {"$regex": /\bHello\b/i}}]}
通过这种方式,搜索" / \ bH \ b /"赢得了比赛"你好"。
否则,在标题字段上使用$ text索引,然后执行$ text搜索:
{"$or": [{$text:{$search:"Hello"}}]}
有关文本搜索的详细信息,请查看文档:{{3}}