Javascript Mongodb-查找日期字段是否在最近10分钟内或获取日期差
我正在react应用程序中使用mongodb和以下查询Javascript Mongodb-查找日期字段是否在最近10分钟内或获取日期差,javascript,mongodb,Javascript,Mongodb,我正在react应用程序中使用mongodb和以下查询 let editedTime = await req.db.collection('commentsPosts').findOne( { "_id": req.query.whenEditedId } ) res.json({editedTime}); 给我下面的结果 {"editedTime":{"_id":"abcd&qu
let editedTime = await req.db.collection('commentsPosts').findOne(
{
"_id": req.query.whenEditedId
}
)
res.json({editedTime});
给我下面的结果
{"editedTime":{"_id":"abcd","text":"this was edited","editedAt":"2020-08-09T23:37:31.279Z"}}
如何查找editedAt是否在最近10分钟内,或者是否存在获得日期差的内容?您可以从editedAt属性创建一个日期对象,并用实际日期减去,您将获得毫秒差,然后使用下面的函数将其转换为分钟 let response={editedTime:{{u id:abcd,text:this was edited,editedAt:2020-08-09T23:37:31.279Z} 设editedAt=new Dateresponse.editedTime.editedAt; 让actualDate=新日期; 让差异=实际日期-编辑日期; 控制台。对数差; 函数毫秒毫秒{ var分钟数=Math.floormillis/60000; 返回分钟数; }
console.logmillisToMinutesdifference+“分钟” 您可以从editedAt属性创建一个日期对象,并用实际日期减去,您将得到毫秒差,然后可以使用下面的函数将其转换为分钟 let response={editedTime:{{u id:abcd,text:this was edited,editedAt:2020-08-09T23:37:31.279Z} 设editedAt=new Dateresponse.editedTime.editedAt; 让actualDate=新日期; 让差异=实际日期-编辑日期; 控制台。对数差; 函数毫秒毫秒{ var分钟数=Math.floormillis/60000; 返回分钟数; }
console.logmillisToMinutesdifference+“分钟” 要查找最后10分钟内的日期
db.collection.find({
editedAt : {
$gte: new Date().getTime() - 60000);
要查找最后10分钟内的日期
db.collection.find({
editedAt : {
$gte: new Date().getTime() - 60000);
看起来您正在使用JavaScript日期对象作为时间戳。这很好,但重要的是要将其与数字时间戳区分开来。因为有些人可能会使用数字时间戳,为了完整性,我将包括这个答案 注意:区别基本上只是将数字时间戳包装在新日期中的问题。。。如果必要的话 还要注意:将毫秒转换为10分钟很容易出错,因此数学留给JavaScript引擎。你可以很快地把它转换成600000,如果你愿意的话,可以使用它,但是我喜欢弄清楚发生了什么 检索日期在10分钟后的记录 使用JavaScript日期 使用数字时间戳 计算时差 使用JavaScript日期 注意:我没有对此进行测试,但是如果您正在使用Date对象,mongo库应该返回Date对象,因此您可以使用诸如getTime之类的日期函数将其转换为毫秒。如果希望timeSince的单位不同于毫秒,则需要转换数字
res.json({timeSince: Date.now() - editedTime.editedAt.getTime()})
使用数字时间戳
看起来您正在使用JavaScript日期对象作为时间戳。这很好,但重要的是要将其与数字时间戳区分开来。因为有些人可能会使用数字时间戳,为了完整性,我将包括这个答案 注意:区别基本上只是将数字时间戳包装在新日期中的问题。。。如果必要的话 还要注意:将毫秒转换为10分钟很容易出错,因此数学留给JavaScript引擎。你可以很快地把它转换成600000,如果你愿意的话,可以使用它,但是我喜欢弄清楚发生了什么 检索日期在10分钟后的记录 使用JavaScript日期 使用数字时间戳 计算时差 使用JavaScript日期 注意:我没有对此进行测试,但是如果您正在使用Date对象,mongo库应该返回Date对象,因此您可以使用诸如getTime之类的日期函数将其转换为毫秒。如果希望timeSince的单位不同于毫秒,则需要转换数字
res.json({timeSince: Date.now() - editedTime.editedAt.getTime()})
使用数字时间戳
这应该是可行的,但这是一个javascript解决方案。mongodb解决方案可能会有所帮助。你的答案值得投票。这应该是可行的,但这是一个javascript解决方案。mongodb解决方案可能会有所帮助。不过,你的答案值得投票。
res.json({timeSince: Date.now() - editedTime.editedAt})