我使用C#中的mongoDb驱动程序检索BsonDocuments。
在此之后,我有了一种分组方法,该方法用于使用给定的Key重新组合文档。 这是从mongo返回的对象的示例:
{{ "_id" : ObjectId("57762d37de7d9c1cbc53bc10"), "DraftNumber" : "227232AA", "EndDate" : ISODate("2016-09-29T08:45:14.986Z"), "ProjectNumber" : "17E618BB" }}
这是我用来重新分组的方法的开始:
internal List<Project> RegroupProject(IEnumerable<BsonDocument> projects)
{
var regroupProjectList = new List<Project>();
var groupedProject = projects.GroupBy(project => project["ProjectNumber"]).ToList();
[...]
}
我在groupBy
表达式中得到了以下异常:
找不到元素“ ProjectNumber”。
您对此有何看法?
是因为我的18k元素之一没有ProjectNumber
字段的值吗?
答案 0 :(得分:0)
您正确地猜测18k项中的一项或多项没有ProjectNumber
属性。我可以看到几个选择。
过滤掉不具有该属性的项目:
var groupedProject = projects
.Where(p => p.Contains("ProjectNumber"))
.GroupBy(project => project["ProjectNumber"])
.ToList();
为缺少该值的项目指定默认值:
var groupedProject = projects
.GroupBy(project => project["ProjectNumber", "<DefaultValue>"])
.ToList();