在MongoDB中new date()出来的ISODate()都是毫秒级的,如下图所示:

可是在有时的项目中需要用到秒级,笔者的做法是利用$dateTostring 和$dateFromString,首先用dateTostring将ISODate数据转换成字符串,再用$dateFromString将字符串转换为字符串转换为ISODate,其中最重要的是dateTostring和$dateFromString中的format:"%Y-%m-%d %H:%M:%S"。
db.mytest.aggregate({
$addFields:{
dataString:{
$dateFromString:{
format:"%Y-%m-%d %H:%M:%S",
dateString:{
$dateToString:{
format:"%Y-%m-%d %H:%M:%S",
date:'$date'
}
}
}
}
},
})
结果输出:
