Как включить ключ ObjectID из MongoDB в ответ JSON? - PullRequest
0 голосов
/ 26 января 2020

После функции MongoDB FindOne () мне нужно взять ObjectID и использовать его в http.ResponseWriter

    documento, err := bd.IntentoLogin(t.Email, t.Password)
    if err != nil {
        http.Error(w, "Usuario y/o Contraseña inválidos", 400)
        return
    }

    jwtKey, err := jwt.GeneroJWT(t.Email)
    if err != nil {
        http.Error(w, "Ocurrió un error al intentar generar el Token correspondiente. "+err.Error(), 400)
        return
    }

    resp := models.RespuestaLogin{
                               ____________________________________      
                         <<<<< Here I need to Include the ObjectID
                               ____________________________________
        Nombre: documento.Nombre,
        Apellidos: documento.Apellidos,
        Token: jwtKey,
    }
    w.Header().Set("Content-Type", "application/json")
    w.WriteHeader(http.StatusCreated)
    json.NewEncoder(w).Encode(resp)

Какой правильный синтаксис, если мне нужно добавить этот ObjectID в структуру JSON ?

Спасибо

Ответы [ 2 ]

0 голосов
/ 28 января 2020

Спасибо, но в вашем примере вы используете литерал

ID: bson.ObjectId ("112233"),

Мне нужно знать, как использовать объект БД вместо

0 голосов
/ 26 января 2020
type RespuestaLogin struct {
    ID        bson.ObjectId `bson:"_id"`
    Nombre    string        `bson:"nombre"`
    Apellidos string        `bson:"apellidos"`
    // rest of your fields...
}

resp := models.RespuestaLogin{
    ID: bson.ObjectId("112233"),
    Nombre: documento.Nombre,
    Apellidos: documento.Apellidos,
    Token: jwtKey,
}

Ваша функция db.IntentoLogin() должна возвращать строку для вставки в качестве ObjectID или что-то подходящее ObjectId type .

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