db.checkins.aggregate
([{'$match':{"checkinData.time":
{"$gt":ISODate("2017-08-31T18:30:00.000Z"),
"$lte":ISODate("2017-08-31T20:00:00.000Z")}}},
{"$project":{'dte': {"$dateToString":
{format: "%Y-%m-%d", date:"$checkinData.time"}
}
}}
])
从数据库返回数据非常好,这意味着下一个日期(2017/09/01)的所有数据返回。 但问题是字段'dte'的值显示上一个日期(2017-08-31)
但我必须显示'dte'的值是下一个日期(2017-09-01)。
我使用了 $ dateToString 和 $ subString
{"$project":{"dte":{"$substr":["$checkinData.time",0,10]},
同样回归 2017-08-31
mongoDB中是否有任何方法或查询显示此日期。
答案 0 :(得分:0)
您可以使用此脚本。
npm install vue-chartjs
我刚刚为您的日期添加了时区差异。我像这样计算了时间偏移量。
{"$project":{ 'dte': { "$dateToString": { format: "%Y-%m-%d",
date:{ $add: [ "$checkinData.time",
{ $subtract: [ new Date( "1970-01-01T00:00:00.000Z" ), new Date( "1970-01-01T00:00:00.000" ) ] } // Time Offset
] } } } } }