2

鉴于:

我有一个带有一些数据的 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();

问题:

现在 Mongo db 告诉 miti.TimeStamp.Date不支持。我认为它只是不能将其转换为“ToDate”函数。

按日期对此类数据进行分组的正确方法是什么?

4

1 回答 1

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),然后我们可以使用类型化组。

欢迎任何意见!

于 2016-07-07T08:41:51.063 回答