Mongo按字词开始搜索

时间:2018-03-06 04:38:43

标签: mongodb

我在MONGO的当前项目上工作,我需要一个查询,如果我搜索一封信需要搜索每个单词

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

  

化学,化学,有机化学

我尝试使用下面的查询

db.topics.find({name: { '$regex': '^che', '$options': 'i' }}, {})

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

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

提前致谢。

2 个答案:

答案 0 :(得分:1)

 private void FindNextFailButton_Click(object sender, RoutedEventArgs e)
        {
                foreach (var Project in Projects)
                {
                    foreach (var Devices in Project.TestRuns)
                    {
                        foreach (var Category in Devices.TestModuleCategories)
                        {
                            foreach (var TestModule in Category.TestModules)
                            {
                                foreach (var statement in TestModule.TestModuleStatementList)
                                {
                                    if(statement.ModuleFailed==1)
                                    {
                                        //TreeViewItem item = ViewTestDataTree.ItemContainerGenerator.ContainerFromItem(statement) as TreeViewItem;
                                        //item.IsExpanded = true;
                                        Project.IsExpanded = true;
                                        Devices.IsExpanded = true;
                                        Category.IsExpanded = true;
                                        TestModule.IsExpanded = true;
                                        statement.IsExpanded = true;
                                        statement.IsSelected = true;
                                        return;
                                        //ViewTestDataTree.SelectedItem = statement;
                                    }
                                }

                            }
                        }
                    }
                }
            }
        }
正则表达式中的

^表示“开始”db.topics.find({name: { '$regex': 'che', '$options': 'i' }}, {}) 是以^che开头的文字

如果你想要 che 是第一个,你必须匹配空格

che

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

答案 1 :(得分:0)

要搜索字母中的每个单词,您需要执行类似
db.topics.find({name: '/che/'})的操作。
有关更详细的答案,请检查this link