수천 개의 데이터가 있으며 그중 일부는 오래되었고 컬렉션 유효성 검사가 변경되었으므로 이제 이전 데이터를 업데이트하고 싶을 때 document validation failed
.
내 첫 번째 접근 방식은 업데이트 할 때 유효성 검사를 무시하는 방법을 찾는 것이었지만 수행하는 방법을 모르고 그것이 최선의 방법인지 확실하지 않습니다.
업데이트 할 때 유효성 검사를 무시하는 것이 좋은 방법입니까? 그렇다면이를 달성하는 방법은 무엇입니까?
내가 시도한 것 :
filter := bson.M{"status": models.TICKET_STATUS_ACTIVE, "expire_at": bson.M{"$lte": time.Now()}}
update := bson.D{{"$set", bson.M{"status": models.TICKET_STATUS_EXPIRED}}}
updatedRows, err := collection.UpdateMany(dbCtx, filter, update)
if err != nil {
fmt.Println("update error ", err)
return
}
fmt.Println("updated rows: ", updatedRows)
대체 솔루션이 인정됩니다.
SetBypassDocumentValidation
업데이트 옵션에서 설정할 수 있는 방법이 있으며가로 설정되어 true
있으면 업데이트 할 때 유효성 검사를 무시합니다.
예 :
updatedRows, err := collection.UpdateMany(dbCtx, filter, update, options.Update().SetBypassDocumentValidation(true))
if err != nil {
fmt.Println("update error ", err)
return
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다