$ час, возвращаемый неопределенным в MongoDB "агрегат" - PullRequest
0 голосов
/ 03 февраля 2020

У меня есть документы в коллекции. У некоторых из них есть такие элементы:

"arrivalTime": {
    "$date": "2020-02-03T20:19:00.000Z"
},

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

myCollection.aggregate([
 { "$group": {
        "_id": {
             "arrivalhour": { "$hour": "$arrivalTime"}
        }, 

        "recordcount": {"$sum":1} 
}], function(err, docs){
console.log(docs);
}

... это просто возвращает «неопределенное» для все значения прибытия в час. Что я делаю неправильно?

1 Ответ

0 голосов
/ 04 февраля 2020

Попробуйте, это работает для меня

myCollection.aggregate([
  {
    $project: {
      'hour': {
        '$hour': {
          date: '$arrivalTime', //your db time date
          //timezone: "+0530"  //pass the time zone 
        }
      }
    }
  },
  {
    "$group": {
      "_id": {
        arrivalhour: '$hour'
      },
      "recordcount": { "$sum": 1 }
    }
  }
]), function (err, docs) {
  console.log(docs);
}
...