Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript MongoDB-从startDate到endDate获取数据_Javascript_Mongodb_Mongodb Query - Fatal编程技术网

Javascript MongoDB-从startDate到endDate获取数据

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中有类似的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',$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应用程序中尝试了这个并对其进行了一些调整,效果很好。谢谢你,伙计!!谢谢你,伙计!谢谢你,伙计!你真是石头!