Получите количество записей на основе группы, mongodb

#mongodb #mongoose

Вопрос:

У меня есть схема монго, подобная этой,

введите описание изображения здесь

Я хочу, чтобы результатом для конкретного пользователя была группа количество полей статуса, что-то в этом роде (я знаю, что это неправильно).,

  db.timesheets.aggregate([
    {_id: user},
    {$group: {_id: "$status"}},
    {$count: 'count'}
])
 

Чего я хочу в конечном результате, так это:

 { "_id" : "Saved", count: 2 }
{ "_id" : "Approved", count: 1 }
 

В настоящее время я извлекаю все записи по идентификатору пользователя и из кода фильтрую их, не зная, как это сделать в запросе mongodb. Нужна помощь.

Спасибо

Ответ №1:

 db.collection.aggregate([
  {
    "$group": {
      "_id": "$status",
      "count": {
        "$sum": 1
      }
    }
  }
])
 

Рабочая игровая площадка Монго