我正在使用MongoDB
和mongoose
来处理需要跟踪数据创建和更改的项目。要求是我需要跟踪记录的创建和更改,包括执行它的日期/时间和应用程序用户(而不是操作系统用户)。
我已经看到了可以解决我的日期/时间问题的mongoose this answer for more information选项,但有没有办法扩展它以包含额外的属性,我将添加应用程序用户名?
如果没有,是否有一个地方我可以编写一个将在每次创建/更新时调用的函数,以便我可以包含/修改这些字段?
今天我在下面的每个模型中都会使用这些属性,但我想将它们全部移到一个地方。
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
}
});
如何才能成为最佳方法?
答案 0 :(得分:0)
我会通过创建两个模型来实现它,一个用于每个数据创建,一个用于每个数据更改。
创建的数据包含6个字段,其中 createdBy , createdAt ,其中一个字段为引用ID 的字段数据更改,已删除,已删除, deletedFlag 。
数据更改将包含字段 dataID ,其中包含已创建数据的参考ID, updatedBy 和 updatedAt 。
通过这种方式,可以很容易地跟踪创建时的更改时间以及删除时间。
PS:您可以在数据更改模式中删除数据创建模型中的数组或数据ID引用ID,这只是我在绑定时要格外小心。