MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Aggregazione per data in Mongodb

Sono stato in grado di risolverlo, secondo il commento di @chridam. Grazie ancora!

Sto scrivendo la soluzione di seguito, per ogni evenienza, se qualcuno dovesse mai incontrare lo stesso problema che ho riscontrato io.

Ho cambiato la mia query in modo da diventare:

 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;

Questo mi ha dato un oggetto serializzato. Quindi l'ho deserializzato nella classe personalizzata che avevo:

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

Ecco la definizione della classe personalizzata che sarà un po' rifinita:

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

Spero che questo sarà utile. Grazie! :)