Как манипулировать данными в запросе MongoDB C #? - PullRequest
0 голосов
/ 13 февраля 2019

У меня есть коллекция CITY {id, name}, и мне нужно найти правильный город в поиске, введенном пользователем.Я создал метод в C #, который очищает набранную строку для поиска, например:

Пользователь набрал: Órlândõ cítý In Mongo: Orlando City

Метод очистит и преобразует в ORLANDOCITY, ноМне нужно также преобразовать сохраненный город в строку ORLANDOCITY, чтобы найти.

Я пробовал:

var stringCleaned = CleanToSearch(value);
_mongoCollection.Find(c => StringUtils.CleanToSearch(c.Name).Contains(stringCleaned)).ToList();

Но я получаю ошибку фильтра Unsupported.Как мне это сделать?

1 Ответ

0 голосов
/ 14 февраля 2019

Я не уверен на 100%, в чем разница между CleanToSearch и StringUtils.CleanToSearch?Я могу видеть, что последний возвращает коллекцию, но какова цель последнего метода (StringUtils.CleanToSearch).Я думал, что целью CleanToSearch было в конечном итоге указать название города, которое хранится в базе данных.В любом случае, я не собираюсь быть одним из тех ответов «Почему ты так делаешь».В вашем классе City всегда может быть свойство, содержащее результат StringUtils.CleanToSearch (название города).Поэтому, когда вы создаете новый город, вы запускаете метод и заполняете свойство (CleanedNames).

public class City
{
    public City(string name)
    {
      Name = name;
      CleanedNames = StringUtils.CleanToSearch(name);
    }

    string Name {get; set;}
    string[] CleanedNames {get; set;}
}

Ваш поиск будет выглядеть так:

 _mongoCollection.Find(c => c.CleanedNames.Contains(stringCleaned)).ToList();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...