MongoDB CSharp In Filter Is Not Correct



我有一个名为CommId的Int字段的Communication文档集合,我正试图使用下面的代码找到包含在Int数组中的所有匹配文档。如果这个查询有效,它应该返回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]。在浏览代码时,我已经验证了Communications集合中包含所有5个文档的条目(总共有数百个文档(,并且每个文档的CommID都等于1,2,3,4,5。

然而,当我运行这个查询时,我没有得到任何结果——我的过滤器有些地方不正确,但我不知道为什么。有人有什么建议吗?

事实证明,MongoDB加载的JSON文档是字符串值,而不是整数。我必须为MongoDB获取Navicat,然后检查列值类型。一旦我知道这个问题就很容易纠正。一旦所有整数值实际上都是int而不是字符串,查询就可以正常工作了。

最新更新