私はあなたのコレクションのためにDTOクラス作成します。
public class Restaurant
{
public ObjectId _id { get; set; }
public address address { get; set; }
public string borough { get; set; }
public string cuisine { get; set; }
public grades[] grades {get;set;}
public string name { get; set; }
public string restaurant_id {get;set;}
}
public class grades
{
public DateTime date {get;set;}
public string grade {get;set;}
public int? score {get;set;}
}
public class address
{
public string building { get; set; }
public double[] coord { get; set; }
public string street { get; set; }
public string zipcode { get; set;}
}
をそして、あなたのようにあなたのコレクションを作成する場合:
var collection = db.GetCollection<Restaurant>("restaurants");
あなたは自分の結果をこのように注文することができます:
collection
.Aggregate()
.Project(r => new {Restarant = r.name, TotalScore= r.grades.Sum(g=>g.score)})
.SortByDescending(x=>x.TotalScore)
.ToList()