Как сохранить виртуальные мангусты - PullRequest
2 голосов
/ 10 июня 2019

Может ли кто-нибудь привести пример, как сохранить виртуалы Мангуста для использования ассоциациями БД?

Уже есть в модели:

const userSchema = new Schema({
    googleId: String,
    name: String,
    email: String,
    password: String,
    credits: {type: Number, default: 0},
});

userSchema.virtual('advertisements', {
    ref: 'advertisements',
    localField: '_id',
    foreignField: '_id',
    justOne: false,
    options: { sort: { name: -1 }, limit: 5 }
  });

mongoose.model('users', userSchema);

В документации есть информация о заполнении данных и поиске , но как должно выглядеть правильное сохранение?

Это должно быть user.advertisements.localfield = localfield или около того? Или как это работает?

Ответы [ 2 ]

2 голосов
/ 10 июня 2019

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

Это означает, что мы можем использовать виртуалы только для подготовки данных, например, мы можемобъединить first name и last name или заполнить документ ссылкой.

1 голос
/ 10 июня 2019

Mongoose поддерживает виртуальные атрибуты.Виртуальные атрибуты - это атрибуты, которые удобно иметь вокруг, но которые не сохраняются в mongodb .

Вы не можете сохранить виртуальные данные, их единственный метод получения

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