Golang mongoDB ObjectID 未解码

问题描述 投票:0回答:1

当我从 mongodb 数据库中获取/获取文档并在结构中对其进行解码时。 ObjectId 未解码并且出现错误

error decoding key _id: cannot decode objectID into an array

我的用户模型:

type User struct {
    ID          primitive.ObjectID `bson:"_id" json:"_id,omitempty"`
    UserName    string             `json:"userName,omitempty" bson:"userName" validate:"required,min=5,max=25"`
    Password    string             `json:"password,omitempty" bson:"password"`
    Email       string             `json:"email,omitempty" bson:"email" validate:"required,email"`
    PhoneNumber string             `json:"phoneNumber,omitempty" bson:"phoneNumber"`
}

我使用的findone功能

func (r *UsersRepo) FindUserByEmail(email string) (*model.User, error) {
    var user model.User
    filter := bson.M{"email": email}
    err := r.MongoCollection.FindOne(context.TODO(), filter).Decode(&user)

    if err != nil {
        return nil, err
    }
    return &user, nil
}

我尝试获取的文档 我尝试获取的文档

mongodb go objectid
1个回答
0
投票

问题出在

"go.mongodb.org/mongo-driver/v2/mongo"
包上,在我更改为
"go.mongodb.org/mongo-driver/mongo"
包后,解码方法工作得很好。所以我们必须在
"go.mongodb.org/mongo-driver/mongo"
包上使用mongoClient

© www.soinside.com 2019 - 2024. All rights reserved.