@chridamのコメントによると、私はそれを修正することができました。もう一度ありがとう!
誰かが私と同じ問題に遭遇した場合に備えて、以下の解決策を書いています。
クエリを変更して、次のようになりました:
var group = collection.Aggregate()
.Match(filter)
.Group(new BsonDocument { { "_id", new BsonDocument { { "month", new BsonDocument("$month", "$createddate.DateTime") }, { "day", new BsonDocument("$dayOfMonth", "$createddate.DateTime") }, { "year", new BsonDocument("$year", "$createddate.DateTime") } } }, { "count", new BsonDocument("$sum", 1) } })
.ToListAsync().Result;
これにより、シリアル化されたオブジェクトが得られました。次に、それを自分が持っていたカスタムクラスに逆シリアル化しました:
var grouped = group.Select(g => BsonSerializer.Deserialize<RootObject>(g));
これが少し洗練されたカスタムクラス定義です:
public class Id
{
public int month { get; set; }
public int day { get; set; }
public int year { get; set; }
}
public class RootObject
{
public Id _id { get; set; }
public int count { get; set; }
}
これがお役に立てば幸いです。ありがとう! :)