如何检查文档是否存在于 MongoDB 中

时间:2021-03-30 10:01:47

标签: node.js mongodb mongoose async-await

我正在尝试检查 MongoDB 中是否存在文档,然后根据该文档更新文档或创建一个新文档。但是,只有 if 语句被记录。如果 mongo 中没有文档,我已经检查过 documentExists 的值为 null。

router.post("/mongo", async function (req, res) {

const documentExists = await Files.findOne({
    _id: req.body.id,
  });

 if (documentExists) {
    try {
      Files.updateOne(
        { _id: documentExist._id },
        { flag: req.body.flag },
        function (err, result) {
          if (err) {
            res.send(err);
          } else {
            res.send(result);
          }
        }
      );
    } catch (err) {
      res.status(400).send(err);
    }
  } else { 
    CREATE NEW DOCUMENT
   }


})

1 个答案:

答案 0 :(得分:0)

在您的情况下,您可以使用 findOneAndUpdate 来更新集合中是否存在任何现有文档,如果没有匹配的文档,则查询返回 null。