您好帮我解决这个问题
我需要查询Mongoose之间的日期时间数据 2016-09-25T00:00:10.000 + 07:00至2016-09-25T01:00:10.000 + 07:00
在robomongo上我使用此查询它正在查找
db.getCollection('positions').find({unit_id:"863835025684908",
utc_ts : {
$gte: ISODate("2016-09-25T00:00:10.000+07:00"),
$lt: ISODate("2016-09-25T01:00:10.000+07:00")
}
})
我得到了结果
{
"_id" : ObjectId("57e6bd10fa10a661c4145870"),
"updated_at" : ISODate("2016-09-25T00:51:12.673+07:00"),
"created_at" : ISODate("2016-09-25T00:51:12.673+07:00"),
"unit_id" : "863835025684908",
"utc_ts" : ISODate("2016-09-25T00:51:10.000+07:00"),
"recv_utc_ts" : ISODate("2016-09-25T00:51:12.000+07:00"),
"lat" : 14.127961,
"lon" : 100.621365
}
但是当我在mongoose上查询时,我使用了这个
var startDate = moment(req.params.startTime).add('hours',7); //req.params.startTime = 2016-09-25 00:00:00
var endDate = moment(req.params.endTime).add('hours',7); //req.params.endTime = 2016-09-25 01:00:00
//Find
Positions.find({
unit_id: req.params.unit_id,
utc_ts: {
$gt: new Date(startDate).toISOString(),
$lt: new Date(endDate).toISOString()
}
}, function(err, positions) {
if (err) {
return err
}
else {
//console.log(positions);
res.json(positions);
}
});
我看到mongoose debug show
Mongoose: positions.find({ utc_ts: { '$gt': new Date("Sat, 24 Sep 2016 00:51:10 GMT"), '$lt': new Date("Sat, 24 Sep 2016 01:08:36 GMT") }, unit_id: '863835025684908' }, { fields: undefined })
然后我从查询中获得了空数组
答案 0 :(得分:1)
我认为您不需要使用format()
对象。您可能希望使用momentjs
var startDate = moment(req.params.startTime).utcOffset('+0700').format("YYYY-MM-DDTHH:mm:ss.SSSZ"); //req.params.startTime = 2016-09-25 00:00:00
var endDate = moment(req.params.endTime).utcOffset('+0700').format("YYYY-MM-DDTHH:mm:ss.SSSZ"); //req.params.endTime = 2016-09-25 01:00:00
//Find
Positions.find({
unit_id: req.params.unit_id,
utc_ts: {
$gt: startDate,
$lt: endDate
}
}, function(err, positions) {
if (err) {
return err
}
else {
//console.log(positions);
res.json(positions);
}
});
函数。这里将编码以获取位置
{{1}}
答案 1 :(得分:0)
这里使用 vanilla Node,获取日期 2021-07-09 的所有位置。
Positions.find({
utc_ts: {
$gte: new Date('2021-07-09T00:00:00Z'),
$lt: new Date('2021-07-10T00:00:00Z') // +1 day
}
})
对于从 2021-07-09 到 2021-07-11 的日期范围,执行 ff(只需添加 +1 天):
Positions.find({
utc_ts: {
$gte: new Date('2021-07-09T00:00:00Z'),
$lt: new Date('2021-07-12T00:00:00Z') // +1 day
}
})