Как из схемы вытащить атрибут 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с данными пользователя