2016-12-05 3 views
0

からリスト >にアクセスすることができます。以下、このような どのように私は次のように定義してMongoDBのレコードに格納していますMongoDBの

public class StorageRecord 
{ 
    public int GrId { get; set; } 
    public List<KeyValuePair<string,int>> Data { get; set; } 
} 

とサンプル:

var storageRecord = new StorageRecord 
{ 
GrId = 12, 
Data = new List<KeyValuePair<string, int>>() 
    { 
     new KeyValuePair<string, int>("xx", 12), 
     new KeyValuePair<string, int>("yy", 13), 
     new KeyValuePair<string, int>("zz", 14) 
    } 
} 

方法を教えてくださいどのくらいのレコードをSumxxというキーをDataリストのKeyValuePairに登録するかを問い合わせる必要があります。

私は、次の文で開始しているが、次がどうあるべきか分からない

var TotalXX = collection 
      .Where(r => r.GrId == grId) 
      .GroupBy(t => t.GrId) 
      .Select(v => v.Select(c => c.Data)); 
+0

サイドノートでは、ISNを't 'List >' 'Dictionary <>'と同じですか? – RandomStranger

答えて

3

私はあなたがGroupByを必要としないと思う:

var TotalXX = collection 
    .Where(storage => storage.GrId == grId) 
    .Sum(storage => storage.Data.Count(kv => kv.Key == "xx")); 
+0

「GroupBy」がなくても大変ありがとうございます。 –

+0

その他の質問、すべてのレコードの特定のキーの値を合計したいのですが? –

+0

@TomaszKowalczyk:「Where'を削除して、それに応じてCountを変更する... –

関連する問題