Как из схемы вытащить атрибут biography, далее поместить его значение в обьект для последующей вставки в PUG-код?

У меня есть схема Character

const characterSchema = new Schema({
    desc: String,
    tag: String,
    info: String,
    creator: String,
    state: Object,
    account: {
        type: Schema.Types.ObjectId,
        index: true,
        ref: 'Account'
    },
    site: {
        type: Schema.Types.ObjectId,
        ref: 'Auth'
    },
    name: {
        type: String,
        index: true
    },
    flags: {
        type: Number,
        default: 0
    },
    lastUsed: {
        type: Date,
        index: true
    },
    biography: {
        type: String,
        index: true
    },
}, { timestamps: true });

Также, к ней прилагается модель:

export const Character = model<ICharacter>('Character', characterSchema);

Мне нужно вытащить из схемы значение biography, и поместить его в обьект, для вставки в PUG-код в виде обьекта, для последующего отображения на странице.

Мне предлагали разные решения, которые я не смог понять, как ими пользоваться, да и здесь нет части добавления biography в обьект. Вот одно из них:

let character = await Character.findOne();
character.biography;

PUG-код (модальное окно), куда и должно вставляться biography.

.modal-overlay
    .modal
        a.close-modal
        svg(viewbox='0 0 20 20')
            path()
            // close modal
        .modal-content
            | {{object.biography}}

Ответы (1 шт):

Автор решения: Август

по порядку.

  • чтобы вытащить из коллекции определенный ключ (весь объект пользователя) из коллекции Character, Вам для начала нужно определиться по какому критерию (свойству объекта) Вы будете его искать в базе (по нику, по id, по чем угодно). после того как Вы определились, mongoose предоставляет Вам много способов как получить данные из БД. пример:

    const user = await Character.findById(userId); // где userId - это _id пользователя, которого запрашиваете
    

    или

    const user = await Character.findOne({ name: 'Petya' }); // где name - это имя персонажа, которого запрашиваете
    
  • чтобы вставить полученного пользователя из БД в шаблон pug:

    res.render('index', { user: JSON.stringify(user) }); // это внутри Вашего контроллера
    

    после этого у Вашего шаблона должна быть переменная user с данными пользователя

→ Ссылка