如何在mongo聚合不起作用的情况下将字符串转换为日期总是返回null?
Posted
技术标签:
【中文标题】如何在mongo聚合不起作用的情况下将字符串转换为日期总是返回null?【英文标题】:How can convert string to date with mongo aggregation not working always return null? 【发布时间】:2021-08-02 09:52:10 【问题描述】:在一个集合中,我存储了这种文档
"_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'
])
但结果始终为空 有人有解决这个问题的方法吗?
【问题讨论】:
【参考方案1】:默认情况下,$dateFromString
运算符将假定字符串在 %Y-%m-%dT%H:%M:%S.%LZ
中。
如果不是,您的场景就是这种情况,您必须手动输入您希望 MongoDB 使用 format
选项解析字符串的格式。
db.collection.aggregate([
$project:
created_at:
$dateFromString:
dateString: "$created_at",
"format": "%Y-%m-%d",
])
【讨论】:
感谢您的回答,我应用了此更改,但没有任何更改 它在我本地运行良好。在此处查看 MongoDB 游乐场结果。 mongoplayground.net/p/HsrJFhJ-sDc 非常感谢,它对我有用,谢谢以上是关于如何在mongo聚合不起作用的情况下将字符串转换为日期总是返回null?的主要内容,如果未能解决你的问题,请参考以下文章
在不丢失信息的情况下将因子转换为数字 R(as.numeric() 似乎不起作用)[重复]
如何在没有 ObjectId 的情况下将 Mongo 与 Spring Data 一起使用