【发布时间】:2021-10-11 06:00:00
【问题描述】:
我正在尝试创建一个 api 来获取 NodeJS 中两个日期之间的数据。我的数据库是mongoDB,我的数据是这样的
_id:ObjectId("60ff19125474fa0ec45c2d1a")
username:"abc"
Date:"2021-7-26"
TimeIn:"2:02 PM"
TimeOut:"2:02 PM"
_id:ObjectId("6101f4a4676d8b2b743a2d58")
username:"abc"
Date:"2021-7-27"
TimeIn:"2:02 PM"
TimeOut:"2:02 PM"
_id:ObjectId("6102e1357ad1ed20d4642db0")
username:"abc"
Date:"2021-7-28"
TimeIn:"2:02 PM"
TimeOut:"2:02 PM"
_id:ObjectId("6104717cb025c025e8b2d15e")
username:"abc"
Date:"2021-8-01"
TimeIn:"2:02 PM"
TimeOut:"2:02 PM"
我想获取两个日期之间的数据,我创建了一个 api 来按日期(单个)获取数据,需要一些修改才能在两个日期之间获取它。
这里是按日期获取数据的 api:
fetchHistorybydate =(req,res)=>{
var HistoryList = []
User.find({"username":req.body.username, "leave":{ $exists : false} },function(err,data){
for(var i =1 ;i<data.length;i++){
var NDate = data[i].Date;
if(NDate==req.body.date){
HistoryList.push(data[i])
}
}
if(err)
{res.status(300).json("Error")}
else{
var token = jwt.sign({
data: 'foobar'
}, 'secret', { expiresIn: "30 minute"})
res.status(200).json({AccessToken: token,data:HistoryList})
}
})
}
例如:
假设前端有两个日历,一个是Fromdate,第二个是Todate,如果用户从Fromdate日历这个2021-7-26和Todate日历这个2021-7-28然后它只会获取这些日期的记录。
输出应该是,根据上面的数据
_id:ObjectId("60ff19125474fa0ec45c2d1a")
username:"abc"
Date:"2021-7-26"
TimeIn:"2:02 PM"
TimeOut:"2:02 PM"
_id:ObjectId("6101f4a4676d8b2b743a2d58")
username:"abc"
Date:"2021-7-27"
TimeIn:"2:02 PM"
TimeOut:"2:02 PM"
_id:ObjectId("6102e1357ad1ed20d4642db0")
username:"abc"
Date:"2021-7-28"
TimeIn:"2:02 PM"
TimeOut:"2:02 PM"
请帮助我如何做到这一点。
【问题讨论】:
-
你的问题不够清楚。 获取两个日期之间的数据是什么意思?
-
@mubin986 让我添加示例
-
@mubin986 我编辑了我的代码,请检查,希望现在清楚了!
-
如果你存储时间戳而不是实际的日期字符串会容易得多
-
你的代码间距和缩进很不一致,太局促了。这使得它难以阅读。你应该解决这个问题。