首页 > 解决方案 > 时间过去后,MongoDB 将属性恢复为默认值

问题描述

我有一种情况,我需要在 User 对象内将 MongoDB 属性设置回 0(其默认值)。

例如,statusCode 设置为 1 表示帐户正在审核中,如果 5 分钟后未设置为其他值,则必须将其设置回其原始值 0。

我将这些用作用户对象的状态代码,1 表示该帐户正在由管理员审查并阻止其他管理员加载相同的对象。

但是,如果由于某种原因管理员没有完成审核过程,我不希望将值保留为 1,因为这样就不会加载对象来完成审核过程。

在下面的代码中,我在我的 Express 路由中将值设置为 1,但不确定在何处应用此逻辑以将值恢复为 0,如果它没有设置为另一个值,例如 2、3、4 等......之后5分钟

谢谢!

router.get(`/api/verify`, auth, async (req, res) => {

  try {
    const user = await User.findOne({
      idVerified: false,
      verificationStatus: 0,
    }).sort({
      createdAt: 1,
    })

    if (!user) {
      return res
        .status(404)
        .send({ error: "No users to verify, check back soon!" })
    }

     // set to 1 signifying account is under review
    await user.updateOne({ verificationStatus: 1 })

    s3VerificationBucket.getSignedUrl(
      "getObject",
      {
        Bucket: "mapspot-verification",
        Key: user.idImageKey,
      },
      (err, url) => res.send({ user, url })
    )
  } catch (err) {
    res.status(500).send()
  }
})

标签: javascriptnode.jsmongodbexpress

解决方案


推荐阅读