【问题标题】:How can I save new Date() in MongoDB?如何在 MongoDB 中保存 new Date()?
【发布时间】:2017-08-08 13:54:44
【问题描述】:

当我使用以下格式在 MongoDB 中保存日期时间时,它显示:

Error "Unable to parse JSON" 

{
  "_id" : ObjectId("58cb759805aeeae37a56dd3d"),
  "name" : "Plutus",
  "admin" : "type 1",
  "created" : new Date()
}

请帮助我使用上述格式的 MongoDB 在 Robomongo 中保存日期时间。

图中错误描述:

谢谢

【问题讨论】:

  • 能否包含架构定义?
  • 是的,我在下面定义了模式定义代码 var mongoose = require('mongoose'); // 定义我们的站点架构 var SiteSchema = new mongoose.Schema({ name: String, admin: String, created : Date }); // 导出 Mongoose 模型 module.exports = mongoose.model('Site', SiteSchema);
  • 谢谢;你能把这个包含在原帖中吗?你能粘贴原始的堆栈跟踪吗?你的有一个错字,我确定最初不是在错误中。

标签: mongodb robo3t


【解决方案1】:

只需保存这个 JSON

{"name": "whatever", "your_cool_date": "2017-03-17 11:59"}

它将作为 ISO 日期保存在数据库中:

"your_cool_date" : ISODate("2017-03-17T10:59:00Z"),

【讨论】:

  • 特定于 Robomongo (Robot3T)
【解决方案2】:

使用shell插入:

db.sites.insert({ “_id”:ObjectId(“58cb759805aeeae37a56dd3d”), “名称”:“普利图斯”, “管理员”:“类型 1”, “创建”:新日期() }

【讨论】:

    【解决方案3】:

    错误似乎与 JSON 语法有关。

    那里可能有硬换行,请尝试修剪线条。请看:

    Multiline strings in JSON

    【讨论】:

      【解决方案4】:

      Robomongo 不支持这种格式,我建议你试试 MongoBooster..

      MongoDB。肯定会支持new Date()的格式。

      否则,您将日期值放入 new Date("2017-03-17")

      【讨论】:

        【解决方案5】:

        您可以尝试使用new ISODate("2017-03-17 11:59")。我知道这有点麻烦,但这是唯一保证在所有版本的 Robomongo 和 MongoDB 上都有效的日期值。

        进一步阅读 -

        1. https://github.com/Studio3T/robomongo/issues/614
        2. https://github.com/Studio3T/robomongo/issues/477

        【讨论】:

        • 感谢 日期已保存,但类似于 JavaScript 用于保存当前日期时间。我不能在 Robomongo 中使用 new Date() 函数吗?
        • 我现在无法访问 Robomongo,但是您使用的是哪个版本的 Robomongo 和 MongoDB? Date.now() 可以代替吗?
        • 这里是问题的图片链接ibb.co/mnVEva "mongodb": "^2.2.24", Robomongo 1.0.0
        • 第二个问题你也能回答一下吗?
        猜你喜欢
        • 2022-06-11
        • 2021-04-19
        • 2015-10-13
        • 1970-01-01
        • 2021-04-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-11-26
        相关资源
        最近更新 更多