将日期字符串转换为ISO格式的问题mongodb

时间:2018-11-28 22:16:24

标签: arrays mongodb mongoose mongodb-query aggregation-framework

我要按员工姓名将两个表连接在一起。我有那部分工作。我目前遇到的问题是我需要将日期和时间设置为ISO格式,并且需要在汇总中进行操作。我不知道怎么办。

我需要转换:

SqlSessionFactory

收件人:

wmic bios get serialnumber

员工集合

2018-11-03:10:47:31

时钟收集

2018-11-03T10:47:31.000Z

这是我的加入

{
    "_id" : ObjectId("(Object ID here"),
    "name": "Test"
}

1 个答案:

答案 0 :(得分:1)

由于您的日期格式非常<header> <img src="https://www.designevo.com/res/templates/thumb_small/black-wing-and-brown-guitar.png" alt="logo" id="logo"> <p>World Guitars</p> </header>,因此您无法轻松地使用mongo 4.0之前的版本解析日期。原因是在4.0中,在$dateFromString函数中添加了 2018-11-03:10:47:31 选项,该函数允许您指定要解析的随机日期格式。因此,正如您提到的,如果选择4.0,那么您将执行以下操作:

展开format后,将字段添加到聚合中:

employeeInfo

或将其投影到项目管道中。

$addFields: {
  "employeeInfo.date": {
    $dateFromString: {
      dateString: "$employeeInfo.time",
      format: "%Y-%m-%d:%H:%M:%S"
    }
  }
}

项目方法可能还需要事先准备好{ "$project": { "employeeInfo.time": { $dateFromString: { dateString: "$employeeInfo.time", format: "%Y-%m-%d:%H:%M:%S" } } } } ,因为对于数组为unwind的事实可能会有些挑剔