首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未定义ISODate

未定义ISODate
EN

Stack Overflow用户
提问于 2012-01-13 17:24:55
回答 6查看 59.8K关注 0票数 46

我正在尝试使用nodejs/mongoose从mongodb获取结果。

代码语言:javascript
复制
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

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2012-01-13 19:08:29

请注意,ISODate是MongoDB的一部分,在您的情况下不可用。你应该改用Date,MongoDB驱动程序(例如你当前使用的Mongoose ORM )将在幕后处理DateISODate之间的类型转换。

票数 74
EN

Stack Overflow用户

发布于 2019-06-28 02:18:45

在我的例子中,我使用ISODates转换查询

代码语言:javascript
复制
let dateString = "2014-01-22T14:56:59.301Z";

$gte : ISODate(dateStr)

在node.js中是

代码语言:javascript
复制
$gte : new Date(dateStr)
票数 8
EN

Stack Overflow用户

发布于 2020-03-11 15:16:25

使用Moment JS在JavaScript中将日期转换为MongoDB ISODate格式

MongoDB使用ISODate作为其主要日期类型。如果要将date对象插入到MongoDB集合中,可以使用Date()外壳方法。

您可以通过向new Date()构造函数或ISODate()函数传递一个年份范围在0到9999之间的ISO8601date字符串来指定特定的日期。这些函数接受以下格式:

  • new Date(**"<YYYY-mm-dd>"**)返回具有指定date.
  • new Date(**"<YYYY-mm-ddTHH:MM:ss>"**)的日期时间,指定客户端本地时区中的日期时间,并返回具有UTC.
  • new Date(**"<YYYY-mm-ddTHH:MM:ssZ>"**)格式的指定日期时间的ISODate,指定以UTC表示的日期时间,并返回具有以UTC表示的指定日期时间的ISODate。
  • Date()将日期时间指定为从Unix纪元(Jan 1,1970),并返回结果ISODate实例。

如果您正在用JavaScript编写代码,并且希望传递一个JavaScript date对象并将其用于MongoDB客户端,那么首先要做的就是将JavaScript date转换为MongoDB date format (ISODate)。下面是你如何做到这一点。

代码语言:javascript
复制
    var today = moment(new Date()).format('YYYY-MM-DD[T00:00:00.000Z]');
    console.log("Next day -- " + (reqDate.getDate() + 1))
    var d = new Date();
    d.setDate(reqDate.getDate() + 1);
    var tomorrow = moment(d).format('YYYY-MM-DD[T00:00:00.000Z]');

您可以使用新的Date()外壳方法将今天和明天的对象传递给MongoDB查询。

代码语言:javascript
复制
  MongoClient.connect(con, function (err, db) {
    if (err) throw err
    db.collection('orders').find({ "order_id": store_id, "orderDate": {     
       "$gte": new Date(today), "$lt": new Date(tomorrow)}
     }).toArray(function (err, result) {
        console.log(result);
        if (err) throw err
          res.send(result);
    })
  })
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8848314

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档