Javascript MongoDB-从startDate到endDate获取数据
因此,我在DB中有类似的JSON(我使用mongoDB) 我正在尝试从我的mongo shell进行查询,以获取从2016年7月30日到2016年8月1日的数据Javascript MongoDB-从startDate到endDate获取数据,javascript,mongodb,mongodb-query,Javascript,Mongodb,Mongodb Query,因此,我在DB中有类似的JSON(我使用mongoDB) 我正在尝试从我的mongo shell进行查询,以获取从2016年7月30日到2016年8月1日的数据 我正在使用这个: db.dataProfTable.find({uSN:'100030001',时间戳:{'$gte':新日期(1469836800),'$lte':新日期(1470009600)}) 和db.dataProfTable.find({'uSN':'100030001','timetag':{$gte:'30072016'
我正在使用这个:
db.dataProfTable.find({uSN:'100030001',时间戳:{'$gte':新日期(1469836800),'$lte':新日期(1470009600)})
和
db.dataProfTable.find({'uSN':'100030001','timetag':{$gte:'30072016',$lt:'01082016'})
但它不起作用。如何解决此问题?如果输入的日期范围为“30-07-2016”到“01-08-2016”,请构造一些JS日期以用于查询。从日期除以1000,以秒为单位获取时间戳(如文档架构所示):
var start = new Date("2016-07-30")/1000,
end = new Date("2016-08-01")/1000;
db.dataProfTable.find({
"timestamp": { "$gte": start, "$lte": end }
})
样本输出
/* 1 */
{
"_id" : ObjectId("579f04ccd8f31a5788eba0fb"),
"uSN" : "100030001",
"timestamp" : 1470009600,
"timetag" : 1082016,
"monthtag" : 82016,
"hourtag" : 11,
"mintag" : 10,
"yeartag" : 2016,
"id" : "d100030001_01082016_11_10"
}
/* 2 */
{
"_id" : ObjectId("579f04ccd8f31a5788eba0fd"),
"uSN" : "100030001",
"timestamp" : 1469850900,
"timetag" : 30072016,
"monthtag" : 72016,
"hourtag" : 10,
"mintag" : 55,
"yeartag" : 2016,
"id" : "d100030001_30072016_10_55"
}
将输入作为日期范围“30-07-2016”到“01-08-2016”,构造一些JS日期以用于查询。从日期中除以1000以秒为单位获取时间戳(如文档架构所示):
var start = new Date("2016-07-30")/1000,
end = new Date("2016-08-01")/1000;
db.dataProfTable.find({
"timestamp": { "$gte": start, "$lte": end }
})
样本输出
/* 1 */
{
"_id" : ObjectId("579f04ccd8f31a5788eba0fb"),
"uSN" : "100030001",
"timestamp" : 1470009600,
"timetag" : 1082016,
"monthtag" : 82016,
"hourtag" : 11,
"mintag" : 10,
"yeartag" : 2016,
"id" : "d100030001_01082016_11_10"
}
/* 2 */
{
"_id" : ObjectId("579f04ccd8f31a5788eba0fd"),
"uSN" : "100030001",
"timestamp" : 1469850900,
"timetag" : 30072016,
"monthtag" : 72016,
"hourtag" : 10,
"mintag" : 55,
"yeartag" : 2016,
"id" : "d100030001_30072016_10_55"
}
因为
1.蒙塔格:
db.dataProfTable.find({uSN:'100030001',$and:[{monthtag:{$gte:
72016},{蒙塔格:{$lte:82016}]})
2.时间戳:
db.dataProfTable.find({uSN:'100030001',$and:[{时间戳:{$gte:
1469836800},{时间戳:{$lte:1470009600}]})
因为
1.蒙塔格:
db.dataProfTable.find({uSN:'100030001',$and:[{monthtag:{$gte:
72016},{蒙塔格:{$lte:82016}]})
2.时间戳:
db.dataProfTable.find({uSN:'100030001',$and:[{时间戳:{$gte:
1469836800},{时间戳:{$lte:1470009600}]})
要按时间戳查询,请使用以下命令:
var start = new Date("07/30/2016").getTime()/1000 //Date Format:mm/dd/yyyy. Doing by 1000 since u stored in seconds
var end = new Date("08/01/2016").getTime()/1000
db.dataProfTable.find({ uSN: '100030001', $and:[ {timestamp : {$gte:start}},{timestamp : {$lte: end}}]})
db.dataProfTable.find({'uSN': '100030001', 'timetag': {$gte: 30072016, $lt: 01082016}}) // Since u stored as number for timetag
要按时间标签查询,请使用以下命令:
var start = new Date("07/30/2016").getTime()/1000 //Date Format:mm/dd/yyyy. Doing by 1000 since u stored in seconds
var end = new Date("08/01/2016").getTime()/1000
db.dataProfTable.find({ uSN: '100030001', $and:[ {timestamp : {$gte:start}},{timestamp : {$lte: end}}]})
db.dataProfTable.find({'uSN': '100030001', 'timetag': {$gte: 30072016, $lt: 01082016}}) // Since u stored as number for timetag
要按时间戳查询,请使用以下命令:
var start = new Date("07/30/2016").getTime()/1000 //Date Format:mm/dd/yyyy. Doing by 1000 since u stored in seconds
var end = new Date("08/01/2016").getTime()/1000
db.dataProfTable.find({ uSN: '100030001', $and:[ {timestamp : {$gte:start}},{timestamp : {$lte: end}}]})
db.dataProfTable.find({'uSN': '100030001', 'timetag': {$gte: 30072016, $lt: 01082016}}) // Since u stored as number for timetag
要按时间标签查询,请使用以下命令:
var start = new Date("07/30/2016").getTime()/1000 //Date Format:mm/dd/yyyy. Doing by 1000 since u stored in seconds
var end = new Date("08/01/2016").getTime()/1000
db.dataProfTable.find({ uSN: '100030001', $and:[ {timestamp : {$gte:start}},{timestamp : {$lte: end}}]})
db.dataProfTable.find({'uSN': '100030001', 'timetag': {$gte: 30072016, $lt: 01082016}}) // Since u stored as number for timetag
检查
$和
操作,并将其用于$gte
和$lte
。时间戳和时间标签的Mongo数据类型是什么?这实际上是时间戳还是双精度?检查$和$gte
操作,并将其用于$gte
和$lte
。时间戳和时间标签的Mongo数据类型是什么?实际情况如何lly时间戳还是加倍?啊,我在我的NodeJS应用程序中尝试了这个并对其进行了一些调整,效果很好。谢谢你,伙计!!啊,我在我的NodeJS应用程序中尝试了这个并对其进行了一些调整,效果很好。谢谢你,伙计!!谢谢你,伙计!谢谢你,伙计!你真是石头!