当存储为字符串

时间:2016-02-18 08:54:32

标签: 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()。如果我尝试输出任何东西,那么$ console中不存在'console'。

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

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

EDIT3: 虽然问题已经解决,但我对任何其他不涉及'RegExp'

的方法感兴趣

1 个答案:

答案 0 :(得分:1)

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

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

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