2012-01-13 137 views
19

我试图从使用nodejs/mongoose的mongodb中获得结果。ISODate未定义

var dateStr = new Date(year,month,day,0,0,0); 
var nextDate = new Date(year,month,day,23,59,59); 

GPSData.find({"createdAt" : { $gte : new ISODate(dateStr), $lte: new ISODate(nextDate) }}, function(err, data) { 
    if(err) 
    console.log(err); 
}); 

错误:ISODate is not defined

回答

33

注意ISODate是MongoDB中的一部分,并且不可在你的情况。您应该使用Date,而MongoDB驱动程序(例如您当前使用的Mongoose ORM)将负责在场景后面的DateISODate之间的类型转换。

+7

它虽然没有。它创建一个字符串。 – 2013-06-15 17:44:28

+1

答案是正确的。包含一个例子的更详细的答案:http://stackoverflow.com/a/21286896/275183 – 2014-02-27 13:46:52

+0

MongoDB将解析和存储您的日期实例作为ISODate(“ISOstring”)。但是当你再次调用这个日期时,它会作为日期实例返回,我不想相信它,直到我自己对它进行测试。 – WouldBeNerd 2016-03-24 14:56:36