2016-09-06 2 views
0

현재 mongodb에 레스토랑이 있습니다. 각 레스토랑에는 리뷰 객체가있는 배열이 있습니다. C#에서 각 리뷰 객체의 목록을 가져 오려고하지만 작동하지 못합니다.C# 및 mongoDB - 배열에서 값 검색

분명히하기 위해 레스토랑을 얻을 수는 있지만 C#의 리뷰 개체 목록을 가져올 수 없습니다.

나는이 시도했지만 그것은 단지 나에게 레스토랑 객체를 반환

var coll = Database.GetCollection<Restaurant>("restaurants") 
      .Aggregate() 
      .Unwind(x => x.reviews); 
     var result = await coll.ToListAsync(); 

     foreach(var r in result) 
     { 
      Console.WriteLine(r.ToString()); 
     } 

이가 내 레스토랑 클래스가된다

public class Restaurant 
{ 
    [BsonId] 
    private ObjectId _id { get; set; } 
    [BsonElement("name")] 
    public string name { get; set; } 
    [BsonElement("reviews")] 
    public List<Review> reviews { get; set; } 

    public Restaurant(string name) 
    { 
     _id = ObjectId.GenerateNewId(); 
     this.name = name; 
     reviews = new List<Review>(); 
    } 

    public void addReview(Review r) 
    { 
     reviews.Add(r); 
    } 

    public void removeReview(Review r) 
    { 
     reviews.Remove(r); 
    } 
} 

어떤 도움을 크게 감상 할 수있다!

+0

http://stackoverflow.com/questions/33531808/mongodb-c-sharp-aggregation-unwind-groupby –

+0

배열에서 항목 목록을 만드는 것과 어떤 관련이 있습니까? – RandomStranger

+1

나는 식당 객체를 받는다고 생각하지 않는다 ... 내 코드에서 BsonDocuments의 배열에 푸는 결과. 그러나 나는 문서에 무엇이 있는지 테스트하지 않았다. –

답변

1

식당 이름과 리뷰 개체를 반환하려면 클래스 함수가 ​​필요합니다.

public String getName(Restaurant rest) 
{ 
    return rest.name; 
} 

public List<Review> getReviews(Restaurant rest) 
{ 
    return rest.reviews; 
} 

편집 : 죄송합니다 질문을 오해. 희망이 당신이 지금 찾고 있었던 것입니다.

+0

글쎄, 그래도 도움이 되겠지만, 여전히 리뷰 오브젝트를 만드는 데 도움이되지 않는다. – RandomStranger

+0

@Bas –