bson.Marshaler 구현
사용자 지정 마샬러의 MarshalBSON 메서드는 다음 단계를 수행해야 합니다.
CreatedAt인 경우 0이면 현재 시간으로 설정합니다.UpdateAt를 현재 시간으로 설정합니다. time.기본 bson.Marshal 함수를 사용하여 구조체를 BSON으로 마샬링합니다.func (user *User) MarshalBSON() ([]byte, error) { if user.CreatedAt.IsZero() { user.CreatedAt = time.Now() } user.UpdatedAt = time.Now() type my User return bson.Marshal((*my)(user)) }사용자 지정 마샬러를 더 큰 구조체에 포함하면 작동하지 않습니다. 이 문제를 방지하려면 대신 전체 임베디드 구조체에 대해 사용자 정의 마샬러를 사용할 수 있습니다.
위 내용은 MongoDB를 삽입하기 전에 Go 구조체의 'created_at' 및 'updated_at' 필드를 자동으로 채우는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!