gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 22:26:47 25 4
gpt4 key购买 nike

我正在将 MongoDBmongoose 用于需要跟踪数据创建和更改的项目。要求是我需要跟踪记录的创建和更改,包括日期/时间和执行此操作的应用程序用户(不是操作系统用户)。

我见过 Mongoose timestamps选项可以解决我的日期/时间问题,但是有没有办法扩展它以包含额外的属性,我将在其中添加应用程序用户名?

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

今天,我将这些属性插入到每个模型上,如下所示,但我想将它们全部移动到一个位置。

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
}
});

最好的方法是什么?

最佳答案

我会通过创建两个模型来实现这一点,一个用于创建的每个数据,一个用于每个数据更改

创建的数据将有 6 个字段,其中一个是 createdBycreatedAt,另一个字段的引用 ID 数组为数据更改,deletedBydeletedAtdeletedFlag

数据更改将包含字段dataID,其中包含创建的数据的引用ID、updatedByupdatedAt

这样就可以很容易地跟踪它的创建时间、更改时间以及删除时间。

PS:您可以删除数据创建模型中的数组或数据更改模式中的dataID ref id,只是我在绑定(bind)时格外小心。

关于javascript - Mongoose Schema 扩展时间戳以具有新属性(用户名),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44936794/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com