在 MongoDB 中,可以為文件欄位設定預設值。這對於在文件建立期間自動填入特定值的欄位非常有用,例如時間戳欄位。
在 Mgo(MongoDB 的 Go 驅動程式)中,沒有直接的方法來定義Mongoose JavaScript 模型中欄位的預設值。開發人員正在尋找一種解決方案,在建立文件時自動將日期或時間值插入文件欄位中。
在Mgo 中設定預設日期值有兩種主要方法:
建構函數:
自訂封送處理:
對於自訂封送處理方法,這裡有一個範例實作:
import ( "context" "time" "github.com/globalsign/mgo/bson" ) type User struct { CreatedAt time.Time `json:"created_at" bson:"created_at"` } func (u *User) GetBSON() (interface{}, error) { if u.CreatedAt.IsZero() { u.CreatedAt = time.Now() } type my *User return my(u), nil } func main() { session, err := mgo.Dial("localhost:27017") if err != nil { panic(err) } defer session.Close() c := session.DB("mydb").C("users") // Create a new user with a default CreatedAt timestamp user := User{} err = c.Insert(user) if err != nil { panic(err) } }
在此範例中,當新的User 文件插入資料庫時,CreatedAt 欄位將自動設定為目前時間。這是透過重寫 GetBSON() 方法以在資料庫驅動程式嘗試序列化物件以進行插入時提供修改後的結構值來實現的。
以上是如何設定 Mgo 文件中 Time.Time 欄位的預設日期值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!