Итак, я делаю пост-findOneAndUpdate-hook. Я пытаюсь сделать так, чтобы, когда люди делали мяч онлайн или удаляли ссылки, мы проверяли ссылки и следили за тем, чтобы входные данные обновлялись впоследствии. (если они имеют высоту шара 2 фута, должен быть определенный радиус, и мы автоматически исправляем его.) Мы используем программу, которая должна использовать findOneAndUpate () для изменения полей. Однако кажется, что я не могу получить доступ к своей базе данных с запросом внутри пост-хука.
Почему мы должны обновить его потом:
- Я пытался использовать pre-save-hook для изменения значений, но findOneAndUpdate полностью пропускает мой pre-save хук.
- Я пытался использовать pre-save-hook с isModified (), но ничего не изменилось после findOneAndUpdate
- Невозможно использовать pre-save-hook без isModified (), потому что кажется, что во время установки код, он будет вызывать его несколько раз во время настройки схемы, и так как все значения пусты, он нарушит код
Если вы, ребята, знаете какие-либо обходные пути, пожалуйста, дайте мне знать, и очень признателен ( :
BallSchema.post('findOneAndUpdate', afterFindOneAndUpdateBall)
const Ball = mongoose.model('Ball', BallSchema)
async function afterFindOneAndUpdateBall(doc, next) {
const survey = await Ball.findById(doc._id)
ball.width = 2
return await ball.save()
next()
}