在这里,我所要做的就是使用golang在mongodb中将用户状态从CAPTURE更改为ACTIVATED,这是我目前所做的,但是我没有得到正确的响应。
到目前为止,我已经尝试了下面的实现,但是什么也没有发生......我所期望的只是看到现有用户状态的变化。
func UpdateUserActivate(client *mongo.Client, user models.User) (*models.User, error) {
collection := client.Database("coche").Collection("user_entity")
_id, err := primitive.ObjectIDFromHex(user.ID)
if err != nil {
fmt.Println(err)
}
filter := bson.M{"_id": _id}
update := bson.M{"$set": bson.M{user.Status: "ACTIVATED"}}
_, _err := collection.UpdateOne(context.TODO(), filter, update)
if _err != nil {
return &user, errors.New("user activation failed")
}
return &user, nil
}
This is my user model.
type User struct {
gorm.Model
ID string `_id`
FirstName string `json:"firstName"bson:"firstname"`
LastName string `json:"lastName" bson: "lastname"`
Address string `json:"address" bson: "address"`
PhoneNumber string `json:"phoneNumber" bson: "phonenumber"`
Status string `json:"status" bson: "status"`
Email string `gorm:"unique" json:"email" "email"`
Password string `json:"password""password"`
Category string `json:"category" "category"`
Roles []string `json:"roles" "roles"`
}
1条答案
按热度按时间w46czmvw1#
尝试
update := bson.D{{"$set", bson.D{{"status": "ACTIVATED"}}}}
在
"$set"
后使用逗号",
"bson.M
或bson.D
在这种情况下并不重要,只需注意使用其中一个或另一个的花括号。参考:https://www.mongodb.com/docs/drivers/go/current/usage-examples/updateOne/