Если у нас есть
Blog{
Name 'Blog1'
Tags ['testing','visual-studio','2010','c#']
}
Blog{
Name 'Blog2'
Tags ['parallel','microsoft','c#']
}
Через консоль мы можем выполнить и найти все сообщения в блоге, которые содержат некоторые из предоставленных тегов:
db.BlogPost.find({ 'Tags' : { '$regex' : ['/^Test/', '/^microsoft/', '/^visual/', '/^studio/', '/^c#/'] } });
Как мы можем написать тот же запросв C # 10Gens драйвер?Есть ли альтернатива, если она не может быть записана с помощью драйвера 10gens c #?
Query.Match поддерживает только одно регулярное выражение.Можем ли мы предоставить ему несколько регулярных выражений, или мы должны объединить
Query.Or(Query.Match("Test"), Query.Match("Micro"), Query.Match("Visual"))
Мне удалось решить это с помощью Мне удалось сделать это с
{ "$or" : [{ "Tags" : /^programm/i }, { "Tags" : /^microsoft/i }, { "Tags" : /^visual/i }, { "Tags" : /^studio/i }, { "Tags" : /^assert/i }, { "Tags" : /^2010/i }, { "Tags" : /^c#/i }] }
Но что-то подсказывает мне, чтоэто ужасный хак, который может привести к проблемам с производительностью.Как вы думаете, ребята?
Окончательный ответ на проблему можно найти на: Официальном форуме mongodb