在mongoDB中将用户状态从捕获更改为激活

rggaifut  于 2023-01-16  发布在  Go
关注(0)|答案(1)|浏览(147)

在这里,我所要做的就是使用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"`
}
w46czmvw

w46czmvw1#

尝试update := bson.D{{"$set", bson.D{{"status": "ACTIVATED"}}}}
"$set"后使用逗号","
bson.Mbson.D在这种情况下并不重要,只需注意使用其中一个或另一个的花括号。
参考:https://www.mongodb.com/docs/drivers/go/current/usage-examples/updateOne/

相关问题