过滤器中的MongoDB CSharp不正确

时间:2018-11-19 14:45:37

标签: c# mongodb-.net-driver mongodb-csharp-2.0

我有一个通信文档集合,其中有一个称为CommId的Int字段,我正在尝试使用以下代码查找包含在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。

但是,当我运行此查询时,没有任何结果-关于过滤器的某些信息不正确,但我不知道为什么。有人有什么建议吗?

1 个答案:

答案 0 :(得分:0)

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