我正在尝试使用'lookup'聚合填充对象上的属性。当我使用MongoChef时,我可以按预期执行我的聚合。尝试反序列化结果时,我的C#代码抛出异常。
我在Mongo有雇主和工作收集。我在C#中有相应的Employer和Job类。雇主被定义为具有List类型的CurrentJobs属性。
集合和对象共享一个EmployerId字段。我的C#查询(简化):
var collection = mongoDatabase.GetCollection<Employer>("Employer");
collection.Aggregate().Lookup("Job", "EmployerId", "EmployerId", "CurrentJobs");
employers = collection.Find(filter).ToListAsync().Result;
我的对象(简化):
public class Employer
{
public List<Job> CurrentJobs { get; set; }
}
public class Job
{
//various fields
}
我的例外:
反序列化CurrentJobs属性时发生错误 class My.Namespace.Employer:无法反序列化'List' BsonType'文件'。
任何帮助表示感谢。
答案 0 :(得分:1)
这是我的错。我在MongoDB中为CurrentJobs集合分配了'Object'的数据类型。我将它移动到'Array',我的反序列化错误消失了。
我是个白痴......