MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Agregacja według daty w Mongodb

Udało mi się to naprawić, zgodnie z komentarzem @chridam . Jeszcze raz dziękuję!

Poniżej piszę rozwiązanie, na wszelki wypadek, gdyby ktoś kiedykolwiek napotkał ten sam problem, co ja.

Zmieniłem zapytanie tak, że stałem się:

 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;

To dało mi zserializowany obiekt. Następnie zdeserializowałem go do klasy niestandardowej, którą miałem:

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

Oto niestandardowa definicja klasy, która będzie nieco dopracowana:

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

Mam nadzieję, że to się przyda. Dziękuję! :)




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Aktualizacja MongoDBWiele()

  2. Pobierz wartości z tablicy i zapisz je w pliku csv za pomocą MongoDB

  3. Jak mogę hostować własny serwer Parse w Heroku przy użyciu MongoDB?

  4. Bigbluebutton setup html5 dev Client login do spotkania z dołączeniem do wywołania api pusta odpowiedź html

  5. Jak użyć pymongo, aby połączyć się z istniejącą kolekcją dokumentów/bazą danych?