Mongo 按单词首字母搜索查询

kis*_*lla 2 mongodb

我正在与 MONGO 一起从事我当前的项目,如果我正在搜索一个字母需要搜索每个单词,我需要一个查询

例如:我的数据库中有 3 个主题,如下所示

化学、化学、有机化学

我试过像下面这样的查询

db.topics.find({name: { '$regex': '^che', '$options': 'i' }}, {})
Run Code Online (Sandbox Code Playgroud)

但我只得到化学和化学的结果

但我的要求是,如果我用che搜索,那么这封信需要检查每个单词的第一个字母,结果还带有化学、化学和有机化学(因为在有机化学中,单词以che mistry开头)

Noz*_*ari 7

db.topics.find({name: { '$regex': 'che', '$options': 'i' }}, {})
Run Code Online (Sandbox Code Playgroud)

^ 在正则表达式中的意思是“开始”^che是以开头的文本che

如果您希望che出现在任何单词中,您必须匹配空格

db.topics.find({name: { '$regex': '(\s+che|^che)', '$options': 'i' }}, {})
Run Code Online (Sandbox Code Playgroud)

为了更好地理解正则表达式,请检查:https : //www.regextester.com/