如何使用 mongo 聚合不总是 return null 将字符串转换为日期?

How can convert string to date with mongo aggregation not working always return null?

在一个集合中,我存储了这种文档

{
   "_id" : 1,
   "created_at" : "2021-11-01",
    ...
}.
{
    "_id" : 2,
    "created_at" : "2021-12-01",
    ...
}

我想将 created_at 转换为日期,我使用此方法

db.collection.aggregate([
    {$project:{ created_at:{$dateFromString:{dateString:'$created_at'}}}}
])

但结果始终为空 有人有办法解决这个问题吗?

默认情况下,$dateFromString 运算符将假定字符串在 %Y-%m-%dT%H:%M:%S.%LZ.

如果不是,您的情况就是这种情况,您必须使用 format 选项手动输入希望 MongoDB 解析字符串的格式。

db.collection.aggregate([
  {
    $project: {
      created_at: {
        $dateFromString: {
          dateString: "$created_at",
          "format": "%Y-%m-%d",
        }
      }
    }
  }
])