我在MONGO的当前项目上工作,我需要一个查询,如果我搜索一封信需要搜索每个单词
例如:我在我的数据库中有3个主题,如下所示
化学,化学,有机化学
我尝试使用下面的查询
db.topics.find({name: { '$regex': '^che', '$options': 'i' }}, {})
但我只得到了化学和化学的结果
但我的要求是,如果我用 che 搜索,那么这封信需要检查每个单词的最新字母,结果还包括化学,化学和有机化学(因为在有机化学中有词开头用 che mistry
提前致谢。
答案 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