2016-09-06 6 views
0

私は巻き戻された文書からわずかな値を取得しようとしています。C#MongoDB文書の投影を使用して

今、私はこのすべてを取得するが、私は唯一の「レビュー」

{ "_id" : ObjectId("57ced083857eda00e03b5a5e"), "name" : "Rest2", "reviews" : { "_id" : ObjectId("57ced083857eda00e03b5a60"), "rating" : 4, "date" : ISODate("2016-09-05T22:00:00Z") } } 

からの値が私の現在の集計関数は次のようになりたい:

var coll = Database.GetCollection<Restaurant>("restaurants") 
      .Aggregate() 
      .Match(new BsonDocument { { "name", nameRest } }) 
      .Unwind(x => x.reviews); 
     var result = await coll.ToListAsync(); 

どのようにあなただけのものを投影します値?ヘルプは非常に高く評価されるだろう!

答えて

0

あなたの例に基づいて、以下のようなプロジェクトを使用することができます。

var coll = Database.GetCollection<Restaurant>("restaurants") 
     .Aggregate() 
     .Match(new BsonDocument { { "name", nameRest } }) 
     .Unwind(x => x.reviews) 
     .Project(new BsonDocument { {"rating", "$reviews.rating"} }) 

var result = await coll.ToListAsync(); 

上記の例が出力のみreviews.rating_idフィールドの結果を。詳細は、aggregation operator $projectを参照してください。

スニペットは、上記MongoDB C# Driver v2.2を用いて試験した、のMongoDB V3.2および.NET V4.5

+0

ありがとうございました!これは私がやっていたことよりはるかに簡単で、うまくいきます – RandomStranger

関連する問題