2016-07-07 4 views
2
とC#のMongoDBプロジェクト

を考える:DateTime.date

を私はいくつかのデータとMongoDBのコレクションをしました。 1つのフィールドはDateTimeフィールドです。

今、毎日のデータを集計したいと思います。このため

私はこの凝集を作成し

var result = collection 
       .Aggregate() 
       .Project(i => new {i.Key,date = i.Timestamp.Date}) 
       .Group(k => k.date,l => new { l.Key,count =l.Count()}) 
       .ToList(); 

問題:

今すぐモンゴDBがi.TimeStamp.DateがサポートされていないことをMITが語っています。私はそれが "ToDate"関数に変換できないと仮定します。

このようなデータを日付別にグループ化する正しい方法は何でしょうか?

答えて

2

私はcshardriverプロジェクトをチェックしていましたが、そのような拡張子はまだありません。 これはbsonドキュメントを使用してこの作業を行う必要があることを意味します。

var project = BsonDocument.Parse("{Key:1, Timestamp:1,year:{$year:'$Timestamp'}, dayOfYear:{$dayOfYear:'$Timestamp'}}"); 

var group = BsonDocument.Parse("{_id:{year:'$year', dayOfYear:'$dayOfYear'}, count:{$sum:1}}"); 

var result = collection 
       .Aggregate() 
       .Project(project) 
       .Group(group) 
       .ToList(); 

我々はオブジェクトProject<ournewClassrepresentingProjectShape>(project)を入力した可能性があり、その後、我々は、入力されたグループを使用することができます。

すべての歓迎!

+0

Thxこの作品は、流暢なAPIで何かが欠けていると思っただけです –

+0

ここに問題のないチケットがありますhttps://jira.mongodb.org/browse/CSHARP-1700 – profesor79