{
$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")
}
}
此项目返回
{
"_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")
}
在这看到这里我遇到麻烦它输出不正确
"日期" :ISODate(" 1969-12-31T17:30:00.000-06:30")
因为手动添加字符串
时输出正确"返回" :ISODate(" 2017-09-13T17:30:00.000-06:30"),
答案 0 :(得分:0)
不幸的是,顶部框中的代码不完整。
您是否尝试在其他地方使用它的同时在结构中的某个位置设置日期?
答案 1 :(得分:0)
新的日期(" $ date")在将此日期传递给mongodb聚合管道之前进行评估,直到那时" $ date"只是javascript engin的正常字符串
对于mongodb 3.6你可以使用
db.coll.aggregate([
{
$project:{
date:{
$dateFromString: {
dateString: "$visits.visit_date"
}
}
}
}