Как использовать виртуальные свойства в Mongoose?

Пользователь

от rebekah , в категории: JavaScript , год назад

Как использовать виртуальные свойства в Mongoose?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от ella , год назад

@rebekah 

Пользователь

от cayla , 3 месяца назад

@rebekah 

В Mongoose, виртуальные свойства (virtuals) позволяют вам объявить виртуальные свойства, которые не хранятся в базе данных, но могут быть вычислены на лету или отображаться как дополнительная информация.


Чтобы использовать виртуальные свойства в Mongoose, вы можете использовать метод virtual() на схеме (Schema) и передать ему название виртуального свойства и объект с методами get и set.


Пример создания виртуального свойства 'fullName', который объединяет свойства 'firstName' и 'lastName':

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
const mongoose = require('mongoose');

const userSchema = new mongoose.Schema({
  firstName: String,
  lastName: String
});

userSchema.virtual('fullName').get(function() {
  return this.firstName + ' ' + this.lastName;
});

const User = mongoose.model('User', userSchema);

const user = new User({ firstName: 'John', lastName: 'Doe' });

console.log(user.fullName); // 'John Doe'


В приведенном выше примере при обращении к виртуальному свойству fullName будет вызываться функция get, которая объединяет значения firstName и lastName и возвращает их как одну строку.


Таким образом, вы можете использовать виртуальные свойства для добавления дополнительной функциональности к вашим моделям в Mongoose без необходимости хранения их в базе данных.