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

标签 javascript regex mongodb

我想像下面的场景一样在 MongoDB 中搜索结果。

我有像 Hello World, I am here. 这样的数据

我的查询是:

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

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

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

最佳答案

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

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

这样,搜索“/\bH\b/”就不会匹配到“Hello”。

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

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

有关文本搜索的更多信息,请查看文档:http://docs.mongodb.org/manual/administration/indexes-text/

关于javascript - 正则表达式匹配mongodb中的整个单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32936131/

相关文章:

javascript - 如何从具有不同键值对的 JSON 文件中读取数据

javascript - Angular 条件模板URL

javascript - jQuery 通过带重音字符的 id 搜索 div

c - 从命令行 C 解析文件名

java - 在 Spring Boot 应用程序中将 mongo db 升级到 3.2

javascript - WebSockets : How to identify devices connected through same network?

regex - sed - 在进行真正的替换之前知道匹配的文本作为测试

regex - 在 p 标签中换行/换行

MongoDB半夜关闭,无法恢复

mongodb - 如何确保一次最多处理一条消息?