MongoDB CSharp в фильтре не правильно - PullRequest
0 голосов
/ 19 ноября 2018

У меня есть коллекция документов Communication с полем Int, называемым CommId, и я пытаюсь найти все подходящие документы, которые содержатся в массиве целых, используя приведенный ниже код. Если этот запрос сработал, он должен вернуть 5 документов.

var filter = Builders<Communication>.Filter.In(x => x.CommID, CommunicationIds);
List<Communication> allComms = _context.Communications.Find(filter).ToList<Communication>();

CommunicationIds - это массив Ints, и, пока я выполняю код, я вижу, что он содержит [1,2,3,4,5]. Проходя по коду, я убедился, что в коллекции «Коммуникации» есть записи со всеми 5 из этих документов (всего их сотни) и что каждый из этих документов имеет CommID, равный 1,2,3,4,5.

Тем не менее, когда я запускаю этот запрос, я не получаю никаких результатов - что-то в моем фильтре неверно, но я не знаю почему. У кого-нибудь есть предложения?

1 Ответ

0 голосов
/ 20 ноября 2018

Оказалось, что MongoDB загружал документы JSON в виде строковых значений вместо целых чисел.Мне пришлось получить Navicat для MongoDB, а затем проверить типы значений столбцов.Это было легко исправить, когда я понял проблему.Когда все целочисленные значения были фактически целыми числами, а не строками, запрос работал нормально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...