Подсчитайте разные значения для определенного идентификатора в MongoDB

Что вам нужно сделать, это:

В вашем базовом классе (где вы объявили события) создайте защищенные методы, которые можно использовать для повышения событий:

public class MyClass
{
   public event EventHandler Loading;
   public event EventHandler Finished;

   protected virtual void OnLoading(EventArgs e)
   {
       EventHandler handler = Loading;
       if( handler != null )
       {
           handler(this, e);
       }
   }

   protected virtual void OnFinished(EventArgs e)
   {
       EventHandler handler = Finished;
       if( handler != null )
       {
           handler(this, e);
       }
   }
}

(Обратите внимание, что вам, вероятно, следует изменить эти методы, чтобы проверить, нужно ли вам вызывать обработчик событий или нет).

Затем в классах, которые наследуются от этого базового класса, вы можете просто вызовите методы OnFinished или OnLoading, чтобы поднять события:

public AnotherClass : MyClass
{
    public void DoSomeStuff()
    {
        ...
        OnLoading(EventArgs.Empty);
        ...
        OnFinished(EventArgs.Empty);
    }
}
1
задан Yu-Chang Ho 19 March 2019 в 15:15
поделиться

1 ответ

Вы должны использовать две $group стадии здесь. Сначала с id и cate_id и count количество документов и , а затем с id

db.collection.aggregate([
  { "$group": {
    "_id": {
      "id": { "$toLong": "$id" },
      "cate_id": "$cate_id"
    },
    "count": { "$sum": 1 }
  }},
  { "$group": {
    "_id": "

Вы должны использовать две $group стадии здесь. Сначала с id и cate_id и count количество документов и , а затем с id

[110]id.id", "categories": { "$push": { "cate_id": "

Вы должны использовать две $group стадии здесь. Сначала с id и cate_id и count количество документов и , а затем с id

[110]id.cate_id", "count": "$count" } } }} ])
0
ответ дан Anthony Winzlet 19 March 2019 в 15:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: