【问题标题】:make date to ISO wrapper将日期设置为 ISO 包装器
【发布时间】:2016-11-30 18:11:57
【问题描述】:

当我在 js 文件中执行 dateAdded : new Date().toISOString() 以创建 JSON 文件以将数据导入 mongo 时,它在 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 中显示日期吗?

在我上面的代码中,Consumer Electronics 进行了查询,但似乎我想按日期查询。

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

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

【问题讨论】:

    标签: javascript node.js mongodb date mongoose


    【解决方案1】:

    toISOString() 函数将根据定义返回一个字符串,正如here 定义的那样。

    您可以将 Date 对象存储在 mongo 中而无需对其进行转换:

     e.dateAdded = new Date();
    

    【讨论】:

    • 我知道我可以存储这样的日期,但是当我在导入新数据后查询数据库时,我认为它不会出现在 ISO 包装器中。这就是我玩 toISOString() 的原因。看看会不会有帮助。
    【解决方案2】:

    当我们使用 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.
    

    更多详情请查看mongod-Date

    【讨论】:

    • 我认为这些只适用于 mongo shell。我不认为你可以在你的 java 脚本中使用它们。
    • 我相信这种行为是特定于驱动程序的,您找到解决方案了吗?
    猜你喜欢
    • 1970-01-01
    • 2016-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多