String to date() 函数不 return 正确的 ISO 日期
String to date() function not return correct ISO Date
{
$addFields: {
date: {$substr : ["$visits.visit_date", 0,10]}
}
},
{
$project:{
now: new Date(),
returns: new Date("2017-09-14"),
visit_date: "$visits.visit_date",
//dateDifference: { $subtract: [ new Date(), "$visits.visit_date" ] },
split: "$date",
dates: new Date("$date")
}
}
这个项目return
{
"_id" : ObjectId("5a26856f462c9616abc98d60"),
"now" : ISODate("2017-12-06T22:21:31.499-06:30"),
"returns" : ISODate("2017-09-13T17:30:00.000-06:30"),
"visit_date" : "2017-09-14 18:37:58",
"split" : "2017-09-14",
"dates" : ISODate("1969-12-31T17:30:00.000-06:30")
}
看到这里我遇到了麻烦它不是正确的输出
"dates" : ISODate("1969-12-31T17:30:00.000-06:30")
因为我在手动添加字符串时得到了正确的输出
"returns" : ISODate("2017-09-13T17:30:00.000-06:30"),
很遗憾,您在顶部框中的代码不完整。
您是否试图在结构中的一个地方设置日期,同时在其他地方使用它?
new Date("$date") 在传递给 mongodb 聚合管道之前评估,直到那时“$date”只是 javascript engin
的普通字符串
对于mongodb 3.6 你可以使用
db.coll.aggregate([
{
$project:{
date:{
$dateFromString: {
dateString: "$visits.visit_date"
}
}
}
}
{
$addFields: {
date: {$substr : ["$visits.visit_date", 0,10]}
}
},
{
$project:{
now: new Date(),
returns: new Date("2017-09-14"),
visit_date: "$visits.visit_date",
//dateDifference: { $subtract: [ new Date(), "$visits.visit_date" ] },
split: "$date",
dates: new Date("$date")
}
}
这个项目return
{
"_id" : ObjectId("5a26856f462c9616abc98d60"),
"now" : ISODate("2017-12-06T22:21:31.499-06:30"),
"returns" : ISODate("2017-09-13T17:30:00.000-06:30"),
"visit_date" : "2017-09-14 18:37:58",
"split" : "2017-09-14",
"dates" : ISODate("1969-12-31T17:30:00.000-06:30")
}
看到这里我遇到了麻烦它不是正确的输出
"dates" : ISODate("1969-12-31T17:30:00.000-06:30")
因为我在手动添加字符串时得到了正确的输出
"returns" : ISODate("2017-09-13T17:30:00.000-06:30"),
很遗憾,您在顶部框中的代码不完整。
您是否试图在结构中的一个地方设置日期,同时在其他地方使用它?
new Date("$date") 在传递给 mongodb 聚合管道之前评估,直到那时“$date”只是 javascript engin
的普通字符串对于mongodb 3.6 你可以使用
db.coll.aggregate([
{
$project:{
date:{
$dateFromString: {
dateString: "$visits.visit_date"
}
}
}
}