MongoDB. Как сделать запрос, используя Regex.IsMatch для массива строк - PullRequest
0 голосов
/ 13 ноября 2018

Не могли бы вы объяснить, как использовать Regex.IsMatch для свойства IEnumerable.

Я пытался сделать это так:

var portfolios = Collection.AsQueryable();
portfolios = portfolios.Where(portfolio => portfolio.KeyWords.Any(keyword => Regex.IsMatch(keyword, "hal", RegexOptions.IgnoreCase)));

где KeyWords это свойство - public IEnumerable<string> KeyWords { get; set; }

В результате я вижу, что получил такой запрос:

{aggregate([{ "$match" : { "KeyWords" : { "$elemMatch" : { "" : /hal/i } } } }])}

Но, похоже, этот запрос не работает, поскольку возвращаемый результат равен 0.

Чтобы уточнить, что мне нужно. У меня есть документ со структурой, как:

{
    "_id" : "5b488f1f666ba93004f990e0",
    "KeyWords" : [ 
        "New portfolio", 
        "Bayern", 
        "Halana", 
        "6"
    ],
}

Что мне нужно, так это найти все документы с определенным запросом по Regex.IsMatch для объектов в массиве KeyWords. Например, я хочу найти все документы, где ключевые слова содержат объект, содержащий текст "hal"

Спасибо

...