javascript - MongoDb 当存储为字符串时按日期查找

标签 javascript mongodb mongoose

在我的 MongoDb(使用 Mongoose)中,我将日期存储为 utc 和 ISO 格式的字符串。 现在我想按日期搜索记录,但我不知道如何进行。

Data.find()
   .$where(function() {
      return new Date(this.timeStamp).getTime() > new Date('2016-1-1').getTime();
   })
   .exec(function(err, wData) {
      if(err) {return next(err);}
      res.json(wData);
   });

问题是 $where 由于某种原因删除了所有通用函数,并且“getTime()”不是该对象的方法。

在不更改架构来存储“日期”的情况下,我将如何执行此操作。

编辑:我也尝试过 Date.parse()。如果我尝试输出任何内容,$where 中也不存在“console”。

编辑2: 这是我的架构,我目前无法访问我的数据库,所以我无法提供示例文档。但是,我已经在使用数据(没有 $where,它只是返回我拥有的所有内容),并且日期格式很好,并在前端正确转换为 Date 对象。

var WeatherData = new mongoose.Schema({
    timeStamp: String,
    lightLevel: Number,
    temperature: Number,
    pressure: Number,
    humidity: Number,
    windSpeed: Number,
    windDirection: Number
});

编辑3: 虽然问题已经解决,但我对任何其他不涉及“RegExp”的方法感兴趣

最佳答案

您可以使用正则表达式查询日期,尝试:

WheaterData.find( {timeStamp: new RegExp("^YYYY-MM-DD","i") } )

它将以 YYYY-MM-DD 格式返回与给定日期匹配的所有文档。

关于javascript - MongoDb 当存储为字符串时按日期查找,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35476776/

相关文章:

javascript - rails 3 : How to add/remove a group of fields using Jquery?

node.js - 在 Node.js 中使用 findAndModify 时出错

javascript - Express/JavaScript 中的作用域和传递 - 如何传递数据库变量?

node.js - 如何将此 Mongoose 插件移植到 Mongoose 5

javascript - 如何自动增加顺序输入的文本值

javascript - D3 Javascript 绘图函数

javascript - 尝试使用下一个和上一个按钮创建一个简单的 javascript 画廊以循环回到开头

java - 如何将 mongodb 列中的所有值检索到 ArrayList 中?

mongodb - python-eve api的认证请求格式是什么

node.js - 如何摆脱错误 : "OverwriteModelError: Cannot overwrite ` undefined` model once compiled. “?