0

MongoDB와 C#에서 놀기 시작했습니다. 식당 샘플 데이터 (https://raw.githubusercontent.com/mongodb/docs-assets/primer-dataset/primer-dataset.json)를 사용합니다.MongoDB 결과를리스트 요소 필드의 집합으로 정렬합니다.

내가 알아 내려고하는 것은 레스토랑을 등급 점수 합계로 정렬 할 수있는 방법입니다. 누군가 AggregateFluent API를 사용하여 샘플을 제공 할 수 있습니까? 나는 그걸로 길을 잃었다.

감사합니다.

답변

1

나는 당신의 수집을 위해 DTO 클래스를 만들 것입니다 : 당신은 당신의 결과 주문할 수

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() 

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;} 
} 

을 그리고 당신은 당신의 컬렉션을 만들 경우