MongoDB中未定义$hour返回;“聚合”;

MongoDB中未定义$hour返回;“聚合”;,mongodb,aggregation-framework,Mongodb,Aggregation Framework,我收集了一些文件。其中一些具有如下元素: "arrivalTime": { "$date": "2020-02-03T20:19:00.000Z" }, 我正在按到达时间把这些文件分类。(请注意,并非所有文档都有到达时间,因此其中一些文档将被分组为“null”组。)但当我尝试此操作时: myCollection.aggregate([ { "$group": { "_id": { "arrivalhour": { "$hour": "$arr

我收集了一些文件。其中一些具有如下元素:

"arrivalTime": {
    "$date": "2020-02-03T20:19:00.000Z"
},
我正在按到达时间把这些文件分类。(请注意,并非所有文档都有到达时间,因此其中一些文档将被分组为“null”组。)但当我尝试此操作时:

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

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

…它只是为arrivalhour的所有值返回“undefined”。我做错了什么

试试这个,对我有用

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

看起来很好:,有其他详细信息吗?
“2020-02-03T20:19:00.000Z”
是字符串,不是
日期
对象。将字符串转换为Date with,或者您可以使用
$hour
@mickl这很奇怪,试图找出这里的区别…我已经找到了。我在“文档”中有一些旧条目,它们把事情搞砸了。我修好了,现在可以用了。我不知道是否应该删除这个问题。