2016-07-07 56 views
2

考慮:C#項目的MongoDB與DateTime.date

我有一個MongoDB的收集了一些數據。一個字段是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不支持。我認爲它只是不能將它翻譯成「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