gpt4 book ai didi

MongoDB 将日期转换为字符串

转载 作者:可可西里 更新时间:2023-11-01 09:57:50 24 4
gpt4 key购买 nike

问题:

"SentTimestamp"获取 Y-m-d 时出错:ISODate("2015-12-23T22:20:15Z")

详情:

文档:

{
...
"SentTimestamp" : ISODate("2015-12-23T22:20:15Z")
...
}

查询:

db.foo.find({}, {$dateToString: {format:"%Y-%m-%d", date:"$SentTimestamp"}})

错误:

Error: error: {
"$err" : "Can't canonicalize query: BadValue >1 field in obj: { format: \"%Y-%m-%d\", date: \"$SentTimestamp\" }",
"code" : 17287

谁能解释一下如何将日期转换为字符串,上面有什么问题吗?

最佳答案

您不能使用 $dateToString find() 中带有投影的运算符方法。相反,将它与 aggregation framework 一起使用在$addFields$project管道阶段返回将日期时间字段转换为具有所需格式的字符串的文档,如以下示例所示:

使用 $addFields :

db.foo.aggregate([
{ "$addFields": {
"sentDateString": {
"$dateToString": {
"format": "%Y-%m-%d",
"date": "$SentTimestamp"
}
}
} }
])

或使用 $project

db.foo.aggregate([
{ "$project": {
"sentDateString": {
"$dateToString": {
"format": "%Y-%m-%d",
"date": "$SentTimestamp"
}
},
"otherFields": 1, ....
} }
])

关于MongoDB 将日期转换为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34856038/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com