MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Agrégation par date dans Mongodb

J'ai pu le réparer, selon le commentaire de @chridam. Merci encore !

J'écris la solution ci-dessous, juste au cas où quelqu'un rencontrerait le même problème que moi.

J'ai changé ma requête pour que je devienne :

 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;

Cela m'a donné un objet sérialisé. Ensuite, je l'ai désérialisé dans la classe personnalisée que j'avais :

var grouped = group.Select(g => BsonSerializer.Deserialize<RootObject>(g));

Voici la définition de la classe personnalisée qui sera un peu peaufinée :

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; }
}

J'espère que cela sera utile. Merci! :)