Post Hook Find One и Update, не могу использовать findOneAndUpdateInside Mongoose - PullRequest
0 голосов
/ 30 января 2020

Итак, я делаю пост-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()
}
...