2016-07-07 57 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