일부 선택적 필드가있는 쿠폰 양식을 작성 중입니다.Golang 구조체에서 omitempty 플래그로 몽고 필드를 업데이트하는 방법
서론
모든 폼 필드 값이 Golang 구조로 JSON로서 수신 및 매핑된다. 구조에서 모든 필드에 "omitempty"플래그를 추가했습니다. 따라서 해당 값만 포함 된 양식 값만 매핑되고 나머지 값은 0, "", false는 구조에서 무시됩니다.
I는 최초로이 양식을 저장은 적절한 형태의 값이 MongoDB를에 저장되어
여기
type Coupon struct { Id int `json:"id,omitempty" bson:"_id,omitempty"` Name string `json:"name,omitempty" bson:"name,omitempty"` Code string `json:"code,omitempty" bson:"code,omitempty"` Description string `json:"description,omitempty" bson:"description,omitempty"` Status bool `json:"status" bson:"status"` MaxUsageLimit int `json:"max_usage_limit,omitempty" bson:"max_usage_limit,omitempty"` SingleUsePerUser bool `json:"single_use_per_user,omitempty" bson:"single_use_per_user,omitempty"` }
이 문제 Golang 구조를이다.
이제 해당 양식을 업데이트하고 데이터 저장시 확인 된 확인란이 있다고 가정합니다. 양식을 업데이트하는 동안 확인란이 선택 취소되고 양식이 저장되도록 제출됩니다. 이제 구조체에 "omitempty"플래그를 적용 했으므로 빈 값을 확인란 필드에 매핑하지 않습니다. 값은 구조체에 매핑되지 않으므로 데이터베이스에 저장되지 않습니다.
사용자가 두 번째로 양식을 편집하면 체크 된 것과 동일한 확인란이 표시됩니다. (하지만 실제 값은 DB에 업데이트되어야하며 확인란은 선택하지 않아야합니다.)
REST API에서 동일한 양식 데이터 (JSON 형식)를 사용하고 있습니다. API에서 양식 데이터를 업데이트하는 동안 필요한 값만 언급하고 업데이트하지 않으려는 값을 전달하지 않으면 MongoDB가 전체 문서를 제공된 필수 값으로 재정의합니다 (값이 또한 API에서 전달하지 않고 업데이트하지 않으려는 경우에도 재정의됩니다.)
요구 사항 :
미래에, 내가 REST API를 노출 할, 그래서 난이 일이 일어난 싶지 않아. 그래서 구조체 필드에서 "omitempty"플래그를 제거하고 싶지 않습니다.
구조체에 omitempty 플래그를 사용하는 동안 빈 양식 값 또는 API 데이터 필드를 DB에 저장하는 방법이 있습니까?
감사합니다. false
및 true
:
type Coupon struct {
Id int `json:"id,omitempty" bson:"_id,omitempty"`
Name string `json:"name,omitempty" bson:"name,omitempty"`
Code *string `json:"code,omitempty" bson:"code,omitempty"`
Description string `json:"description,omitempty" bson:"description,omitempty"`
Status *bool `json:"status" bson:"status"`
MaxUsageLimit int `json:"max_usage_limit,omitempty" bson:"max_usage_limit,omitempty"`
SingleUsePerUser bool `json:"single_use_per_user,omitempty" bson:"single_use_per_user,omitempty"`
}
을 다음과 같이