Как я могу заполнить документ после .save с функцией pre hook - PullRequest
0 голосов
/ 21 апреля 2019

У меня есть предварительная ловушка для заполнения необходимых полей, настроенных как schema.pre(/^find/, fn). Сейчас я пытаюсь заставить систему такого же типа работать с document.save() функцией, к сожалению, она не работает ни с schema.pre('save'), ни с schema.post('save')

Итак, это полностью заполнило бы поля:

let user = await User.findOneAndUpdate({_id: user._id}, {$set: {testFieldWithRef: someObjectId}}, {new: true});
console.log(user.testFieldWithRef) //would output populated field instead of objectId

что бы не заполнять поля моими .pre хуками

let user = await User.findOne({_id: user._id})
user.testFieldWithRef = someObjectId
user.markModified('testFieldWithRef')
user = await user.save()
console.log(user.testFieldWithRef) //would output someObjectId

1 Ответ

0 голосов
/ 22 апреля 2019

Итак, это сработало.Жаль, что мангуст не так популярен в stackoverflow

schema.pre('save', async function(next) {
    await this.populate({
        path: 'testFieldWithRef'
    }).execPopulate();
    next()
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...