Javascript 使日期符合ISO包装

Javascript 使日期符合ISO包装,javascript,node.js,mongodb,date,mongoose,Javascript,Node.js,Mongodb,Date,Mongoose,当我在js文件中执行dateAdded:new Date().toISOString()以创建要导入mongo的数据的JSON文件时,它在mongo shell中显示为2016-11-26T21:51:23.879Z。我希望它看起来像ISODate(“2016-11-26T21:51:23.879Z”) 我不得不像下面这样做,将其更改为我通常看到的ISO包装 Comps.find({category : "Consumer Electronics"}) .then(function(co

当我在js文件中执行
dateAdded:new Date().toISOString()
以创建要导入mongo的数据的JSON文件时,它在mongo shell中显示为
2016-11-26T21:51:23.879Z
。我希望它看起来像ISODate(“2016-11-26T21:51:23.879Z”)

我不得不像下面这样做,将其更改为我通常看到的ISO包装

Comps.find({category : "Consumer Electronics"})
    .then(function(comps){
        console.log(comps.length)
        comps.forEach(function(e){
            console.log(e.name)
            e.dateAdded = new Date(e.dateAdded.toString());
            // e.category = "Auctions";
            e.save(function(error, doc){
                if(error) console.log(error);
                console.log("doc saved : " , doc.name, " ", doc.category, " " , doc.dateAdded);
            })
        })
    })
`

在JS文件中,我可以做些什么来让日期立即用ISO包装器显示在mongo中吗

在我上面的代码中,有一个由消费类电子产品提供的查询,但似乎我想按日期进行查询

例如,如果我刚导入了300个文档,其中已经有1000个文档,那么我希望能够在1001开始的日期之前进行查询。我想按日期查询,但如果它有ISOwrapper,我会感觉更好,我不想按类别查询

我在mongoose模式中添加了这个
dateAdded:{type:Date,default:Date.now},
我最近一直在使用mongoimport,所以我认为这并不重要。

根据定义,
toISOString()
函数将返回一个字符串

您可以在mongo中存储日期对象,而无需对其进行转换:

 e.dateAdded = new Date();
根据定义,
toISOString()
函数将返回定义的字符串

您可以在mongo中存储日期对象,而无需对其进行转换:

 e.dateAdded = new Date();
当我们使用Date()时,它将日期返回为String,但是要返回ISODate对象,您可以使用以下重载的日期格式

new Date("<YYYY-mm-dd>") which returns the ISODate with the specified date.
new Date("<YYYY-mm-ddTHH:MM:ss>") which specifies the datetime in local datetime and returns the ISODate with the specified datetime in UTC.
new Date("<YYYY-mm-ddTHH:MM:ssZ>") which specifies the datetime in UTC and returns the ISODate with the specified datetime in UTC.
newdate(“”),返回指定日期的ISODate。
新日期(“”),以本地日期时间指定日期时间,并返回以UTC表示的指定日期时间的ISODate。
新日期(“”),以UTC为单位指定日期时间,并返回以UTC为单位指定日期时间的ISODate。
有关更多详细信息,请查看当我们使用日期()时,它将日期返回为字符串,但是要返回ISODate对象,您可以使用以下重载日期格式

new Date("<YYYY-mm-dd>") which returns the ISODate with the specified date.
new Date("<YYYY-mm-ddTHH:MM:ss>") which specifies the datetime in local datetime and returns the ISODate with the specified datetime in UTC.
new Date("<YYYY-mm-ddTHH:MM:ssZ>") which specifies the datetime in UTC and returns the ISODate with the specified datetime in UTC.
newdate(“”),返回指定日期的ISODate。
新日期(“”),以本地日期时间指定日期时间,并返回以UTC表示的指定日期时间的ISODate。
新日期(“”),以UTC为单位指定日期时间,并返回以UTC为单位指定日期时间的ISODate。

有关更多详细信息,请查看

我知道我可以存储这样的日期,但我认为在导入新数据后查询数据库时,它不会显示为ISO包装。这就是为什么我经常使用
toISOString()
。我知道我可以存储这样的日期,但我不认为在导入新数据后查询数据库时会显示ISO包装。这就是为什么我经常使用
toISOString()
。看看这是否有帮助。我想这些只适用于mongo shell。我不认为您可以在java脚本中使用它们。我相信这种行为是特定于驱动程序的,您找到解决方案了吗?我认为它们只适用于mongo shell。我认为您不能在java脚本中使用它们。我相信这种行为是特定于驱动程序的,您找到解决方案了吗?