javascript - MongoDB - 获取从开始日期到结束日期的数据

标签 javascript mongodb mongodb-query

所以,我在数据库中有这样的 JSON(我使用 mongoDB)

{ 
    "uSN": "100030001",
    "timestamp": 1470009600,
    "timetag": 1082016,
    "monthtag": 82016,
    "hourtag": 11,
    "mintag": 10,
    "yeartag": 2016, 
    "id": "d100030001_01082016_11_10"
  },
  { 
    "uSN": "100030001",
    "timestamp": 1470096000,
    "timetag": 2082016,
    "monthtag": 82016,
    "hourtag": 11,
    "mintag": 10,
    "yeartag": 2016, 
    "id": "d100030001_02082016_11_10"
  },
  { 
    "uSN": "100030001",
    "timestamp": 1469850900,
    "timetag": 30072016,
    "monthtag": 72016,
    "hourtag": 10,
    "mintag": 55,
    "yeartag": 2016, 
    "id": "d100030001_30072016_10_55"
  },
  { 
    "uSN": "100030001",
    "timestamp": 1469923200,
    "timetag": 31072016,
    "monthtag": 72016,
    "hourtag": 11,
    "mintag": 10,
    "yeartag": 2016, 
    "id": "d100030001_31072016_11_10"
  },
  { 
    "uSN": "100030001",
    "timestamp": 1469577600,
    "timetag": 27072016,
    "monthtag": 72016,
    "hourtag": 11,
    "mintag": 10,
    "yeartag": 2016, 
    "id": "d100030001_27072016_11_10"
  }

我正在尝试从我的 mongo shell 进行查询以获取从 2016 年 7 月 30 日到 2016 年 8 月 1 日的数据。

我正在使用这个:
db.dataProfTable.find({ uSN: '100030001', timestamp : {'$gte': new Date(1469836800), '$lte': new Date(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"
}

关于javascript - MongoDB - 获取从开始日期到结束日期的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38693298/

相关文章:

javascript - 重写$swipe内部方法bind()事件

mongodb - 如何使用 $set 和 $elemMatch 之类的东西更新 MongoDB 文档数组中的单个子文档?

javascript - Passport 不将子文档保存到 req.user

javascript - Perl CGI 和 JavaScript |选择选项的烦恼

javascript - "Precision-moving"使用 Phaser 和 p2.js 物理的 body

javascript - 使用 $project 在 MongoDB 聚合查询中包含一个 Javascript 变量

c# - 如何通过 .NET 在 MongoDB 中创建索引

javascript - 如何同时保存两个相互关联的模型?

mongodb - 如何在 mongodb 中返回更新对象的数量?

mongodb - 如何聚合集合并查找最小/最大值