0

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

Mongo 会自动生成一个 ID,我看到可以从自动生成的 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}
})

从 mongodb 文档 _id 字段获取日期和时间

4

1 回答 1

1

约翰尼所说的,不推荐。特别是当您使用它来记录用户操作时。(有可能 2 个用户在同一毫秒执行一个操作,现在您的 id 不再是唯一的)

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

于 2012-11-30T22:53:07.597 回答