簡體   English   中英

貓鼬模式擴展時間戳以具有新屬性(用戶名)

[英]Mongoose Schema extend timestamp to have new properties (username)

我在將MongoDBmongoose用於需要跟蹤數據創建和更改的項目。 要求是我需要跟蹤記錄的創建和更改,包括日期/時間和執行此操作的應用程序用戶 (而非OS用戶)。

我見過貓鼬時間戳選項可以解決我的日期/時間問題,但是有沒有辦法將其擴展為包括其他屬性,我將在其中添加應用程序用戶名?

如果沒有,我是否可以在一個地方編寫一個可以在每次創建/更新時調用的函數,以便我可以包括/修改這些字段?

今天,我在下面的每個模型中插入了這些屬性,但我想將它們全部移動到一個地方。

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個字段之一是createdBy,createdAt,以及一個將與數據的變化,deletedBy,deletedAt,deletedFlag參考ID的陣列的場數據。

數據更改將具有字段dataID ,該字段將具有創建, updatedByupdatedAt數據的引用ID。

這樣,很容易跟蹤創建時間,更改時間和刪除時間。

PS:您可以刪除Data創建模型中的Array或Data Change模式中的dataID ref id,這只是我在綁定時要格外小心。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM