Не могу декодировать objectID в массив - PullRequest
0 голосов
/ 05 февраля 2020

У меня есть этот код в Golang

    var usu models.Usuario
    condicion := bson.M{
        "email":email,
    }
    err := col.FindOne(context.TODO(), condicion).Decode(&usu)
    if err != nil {
        log.Printf("Login instatisfactorio por error "+err.Error())
        return usu, err
    }

И у меня есть эта ошибка

2020-02-04 16:13:10 default [20200203t231424] 2020 / 02/04 16:13:10 Ошибка входа в систему instatisfactorio por не может декодировать objectID в массив

Ошибка:

type Usuario struct {
    ID         bson.RawValue `bson:'_id' json:'id, omitempty'`

Как я могу ДЕКОДИТЬ результаты, содержащие "bson" .RawValue "? Мне нужен идентификатор пользователя

Спасибо

ОБНОВЛЕНИЕ: Привет, у меня теперь .Hex() работает, но в результате у меня '00000000000000'. Смотреть.

    var resultado models.Usuario

    err := col.FindOne(context.TODO(), condicion).Decode(&resultado)

    log.Println("Nombre : "+resultado.Nombre)
    log.Println("Apellido : "+resultado.Apellidos)
    log.Println("ID : "+resultado.ID.Hex())

А это модель

type Usuario struct {
    ID         primitive.ObjectID `bson:'_id' json:'_id, omitempty'`
    Nombre     string `bson:"nombre" json:"nombre,omitempty"`
    Apellidos  string `bson:"apellidos" json:"apellidos,omitempty"`
    Password   string `bson:"password" json:"password,omitempty"`
    Email      string `bson:"email" json:"email"`
}

У меня есть это в базе данных

MongoDB Collection

1 Ответ

1 голос
/ 05 февраля 2020

ObjectID имеет тип primitive.ObjectID. Если вы измените тип идентификатора на primitive.ObjectID, он сможет расшифровать его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...