Mongoose查询在两个日期时间之间提取数据
Mongoose query to pull data between two datetimes
我设置了一个mLab数据库,并通过Mongoose与之交互。我想查询数据库并在10分钟内返回所有记录。因此,在查询时,它将查看日期字段,并在当前日期时间之前10分钟内和当前日期时间之后10分钟内带回所有记录。
数据库条目如下所示:
{
"_id" : ObjectId("572cd34786d87203006a89dc"),
"expecting" : "Chris",
"channel" : "D164Z16BB",
"date" : ISODate("2016-05-06T13:30:00Z"),
"userId" : "U0GMSLZ7C",
"email" : "email@gmail.com",
"userName" : "userName",
"firstName" : "Bob",
"__v" : 0
}
我的查询看起来像:
var now = new Date();
var later = moment(now).add(15, 'm').toDate();
var earlier = moment(now).subtract(15, 'm').toDate();
Schedules.find({
'date': {
'$gte': earlier,
'$lte': later
}
}, function(err, schedules) {
if(err) res.send(err);
res.json(schedules);
});
即使数据库中有一个条目符合时间标准,它也不会返回任何内容。
张贴请求:
apiRouter.post('/', function(req, res) {
console.log(req.body);
var schedule = new Schedules();
schedule.firstName = req.body.firstName;
schedule.real_name = req.body.real_name;
schedule.userName = req.body.userName;
schedule.email = req.body.email;
schedule.userId = req.body.userId;
schedule.date = req.body.date;
schedule.channel = req.body.channel;
schedule.expecting = req.body.expecting;
schedule.save(function(err, schedule) {
if (err) res.send(err);
res.json({message: 'Schedule was created'});
});
});
我想这是你的问题,
var now = new Date();
var later = moment(now).add(15, 'm').toDate();
var earlier = moment(now).subtract(15, 'm').toDate();
toDate返回对象,mongodb可能有字符串。
请改用此选项。
var later = moment().add(15, 'm').format();
var earlier = moment().subtract(15, 'm').format();
或者,您可以将架构设置为最新。
您的数据与您搜索的数据格式不同。
"date": {
"$date": "2016-05-06T10:00:00.000Z"
},
这是一个错误的条目。你应该总是有这样的
"date" : ISODate("2016-04-24T04:50:07Z"),
当您正确地传递日期对象时,我们可以做到这一点。
现在,如果您真的只想要这个结构,您将不得不将查询更改为类似的内容。
{
'data.$date' : {
//gte,
//lte
}
}
错误发生在我保存日期的时候。它将EST时间保存为UTC,而不是将其从EST转换为UTC。因此,查询本身工作正常,因为它使用了正确的时间,并且在DB 中保存了一个未转换的时间
相关文章:
- Json数据包含日期和时间格式
- 更改angularjs中的日期-时间格式
- 将日期时间作为 JSON 发送将无法在我的视图中正确显示
- 将日期时间从json转换为可读格式
- jquerydatetimepicker日期和时间应在框默认值中,而无需单击框
- primefaces日历可以禁用过去的日期和时间吗
- 将日期和时间转换为UTC格式的日期-Javascript
- 时间-日期对象JavaScript getUTCMilliseconds
- 如何在MongoDB中建模和查询办公时间(日期、时区、dst)
- 查找月份在JavaScript循环中出现五次的时间(日期、字符串)
- 在javascript/jquery中解析UTC ISO日期到本地时间日期
- 时间/日期识别与jQuery
- 如何将Twitter API发布时间/日期转换为有效的ISO格式?
- 将当前时间日期放在隐藏字段中
- 只有少于24小时以前的时间日期格式
- 当移动时间/日期滑块太快时,Datetimepicker在breezejs / knockout中产生并发保存错误
- 在任何时间日期选择器中以编程方式设置时区偏移量
- 本地化UTC时间/日期
- 如何使用jquery/javascript转换时间/日期
- 使用javascript显示php时间/日期函数的帮助