如何在mongodb中转换日期格式

如何在mongodb中转换日期格式,mongodb,date,Mongodb,Date,我使用的是API(因此我无法控制字段)-其中一个字段的类型为Date 现在,我发现记录中存储的日期类似于以下值: { ... "foobarDate": "2013-05-26T05:00:00.000Z", ... } 现在我希望根据这个日期检索一些记录-例如,我需要检索fooBarDate早于今天日期的所有记录 如果我使用Javascript的Date()功能,那么我将以以下格式获取日期: 2013年6月19日星期三21:13:50 GMT+0530(IST) 如果

我使用的是API(因此我无法控制字段)-其中一个字段的类型为
Date

现在,我发现记录中存储的日期类似于以下值:

{
    ...
    "foobarDate": "2013-05-26T05:00:00.000Z",
    ...
}
现在我希望根据这个日期检索一些记录-例如,我需要检索
fooBarDate
早于今天日期的所有记录

如果我使用Javascript的
Date()
功能,那么我将以以下格式获取日期:
2013年6月19日星期三21:13:50 GMT+0530(IST)

如果我尝试按如下方式设计查询

{
    "fooBarDate": {
        "$lte": <the date calculated in javascript>
    }
}
{
“fooBarDate”:{
“$lte”:
}
}
…我没有得到记录-我得到一个空数组-我怀疑这是因为MongoDB中存储的日期格式与我传递的日期格式不同

如何将Javascript日期格式转换为mongodb格式?或者至少,如何以MongoDB中存储的格式获取当前日期


另外,我正在使用nodeJs,希望在这种情况下查询数据库。

如果您将字符串传递到查询中,正确的数据格式是ISO8601,看起来您已经这样做了,但是您也可以将javascript日期对象直接传递到查询中,并获得相同的结果。看起来您可能缺少正确的括号,这可能会导致查询失败。尝试以这种方式重新格式化代码(编辑我正在使用mongoose,但我认为straight mongo是一样的):


Mongo将日期存储为
ISODate
对象。只需将日期包装到
ISODate
constructor中即可:

{
    "fooBarDate": {
        "$lte": ISODate("2013-05-26T05:00:00.000Z")
    }
}

这有点误导,因为
ISODate
只是将字符串转换为本机
Date
类型,但MongoDB将日期存储为64位整数BSON dates。如果我想将fooBarDate与格式Y-m-d进行比较,该怎么办
{
    "fooBarDate": {
        "$lte": ISODate("2013-05-26T05:00:00.000Z")
    }
}