在mongodb中将字符串时间转换为日期

时间:2018-09-19 00:55:50

标签: node.js mongodb mongoose aggregation-framework

我有一个聚合查询,其中我正在拆分一个字段值,并尝试使用$dateFromParts从拆分数组中的值创建一个日期,不幸的是,我遇到了以下错误。由于我将Mongo Altas的M0实例用于开发目的,并且其版本为3.6,因此无法使用v4的$ convert和$ toInt功能。请提出解决方案。

“小时”必须计算为整数,找到的字符串具有值

{
      {  
            $addFields: {
                departure_time: { $split: ["$timings.departure", ":"] }  
            }
        }
        ,
        {
            $project: { 
                departure_date: { $dateFromParts: { 'year': dt.getUTCFullYear(), 'month': dt.getUTCMonth(), 'day': dt.getUTCDate(), 'hour': { $arrayElemAt: ["$departure_time", 0] }, 'minute': { $arrayElemAt: ["$departure_time", 1] } } }
            }
        }
}

1 个答案:

答案 0 :(得分:1)

您可以尝试在mongodb 3.6

中使用$dateFromString
db.collection.aggregate([
  { "$project": {
    "departure_date": {
      "$dateFromString": {
        "dateString": { "$concat": ["2018-09-19", "T", "$timings.departure"] }
      }
    }
  }}
])