【问题标题】:Use Date as the ID in MongoDB?使用日期作为 MongoDB 中的 ID?
【发布时间】:2012-11-19 03:59:09
【问题描述】:

打算在 Heroku/Node/Express/Mongodb Web 应用程序中记录 API(用户/路由/参数/时间)的使用情况,以允许进行各种分析(谁/什么/何时/多久)。我能想到的一种方法是将它们推送到 MongoDB。

Mongo会自动生成一个ID,我看到可以extract the created time from the autogenerated ID,但是既然时间戳就是我想要的,现在我想知道我是否可以使用日期作为 ID ?

这似乎可行,而且时间戳似乎足够精细 ("_id" : ISODate("2012-11-30T21:18:24.484Z")),它们将是独一无二的。这可以吗,还是只是在事情开始时询问“ID 不是唯一的”错误?

var apilogSchema = new mongoose.Schema({            
  _id: {type: Date, default: Date.now},
  userId: {type: mongoose.Schema.Types.ObjectId, required: false},
  route: {type: String, required: false}
})

Get date and time from mongodb document _id field

【问题讨论】:

  • 除非你能保证你的时间戳总是唯一的,否则这最终会给你带来麻烦。

标签: javascript mongodb logging mongoose


【解决方案1】:

johnny 所说的,不建议这样做。特别是当您使用它来记录用户操作时。 (可能有 2 个用户在同一毫秒执行一个操作,现在您的 id 不再是唯一的)

如果您在 node.js 上并希望您的 id 包含时间戳,请查看 node-uuid

【讨论】:

    猜你喜欢
    • 2017-05-30
    • 2019-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多