Mongoose Schema扩展时间戳以具有新的属性(用户名)
我正在使用MongoDB
和mongoose
需要跟踪数据创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个字段,其中一个是createdBy , createdAt , 另一个是具有Data Changes, deletedBy , deletedAt , deletedFlag 引用ID的数组的字段。
数据更改将具有字段dataID ,其具有创build的数据的引用id, updatedBy和updatedAt 。
通过这种方式,可以很容易地跟踪创build时间和删除时间。
PS:你可以删除数据创build模型中的数组或数据更改模式下的数据ID引用ID,这只是我在绑定时特别谨慎。