Mongoose Schema扩展时间戳以具有新的属性(用户名)

我正在使用MongoDBmongoose需要跟踪数据创build和更改的项目。 需求是我需要跟踪logging的创build和更改,包括date/时间和应用程序用户 (而不是操作系统用户)。

我已经看到了mongoose时间戳选项,可以解决我的date/时间问题,但有没有办法将其扩展到包括额外的属性,在那里我将添加应用程序的用户名?

如果没有,是否有一个地方我可以写一个函数,将在每次创build/更新时调用,以便我可以包含/修改这些字段?

今天,我在下面的每个模型中都join了这些属性,但我想把它们全部移到一个地方。

 var companySchema = mongoose.Schema({ name: { type: String, index: true }, phone: { type: String }, deleted: { type: Boolean }, createdAt: { type: Date }, createdBy: { type: String }, updatedAt: { type: Date }, updatedBy: { type: String } }); 

最好的办法是什么?

我会通过创build两个模型来处理它, 每个数据创build一个, 每个数据更改一个

创build的数据将有6个字段,其中一个是createdBycreatedAt另一个是具有Data Changes, deletedBydeletedAtdeletedFlag 引用ID数组的字段。

数据更改将具有字段dataID ,其具有创build的数据的引用id, updatedByupdatedAt

通过这种方式,可以很容易地跟踪创build时间和删除时间。

PS:你可以删除数据创build模型中的数组或数据更改模式下的数据ID引用ID,这只是我在绑定时特别谨慎。