【问题标题】:Validating Saved MongoDB Record验证保存的 MongoDB 记录
【发布时间】:2018-12-08 03:54:54
【问题描述】:

我正在学习 mongoDB 教程,讲师建议我使用以下代码来验证用户在我的数据库中的输入。我已经定义了一个用户模型,它只接受一个名字,看起来像这样:

it("Can create a subdocument", (done) => {
  const joe = new User({
    name: "joe",
  });

    joe.save()
        .then(() => User.findOne({ name: "joe"}))
        .then((user) => {
            assert(user.name === "joe")
            done();
        });
}

但是,我不明白为什么这里需要使用 User.findOne 函数。为什么我们不能直接使用:

joe.save().then((user) => {
   assert(user.name === "joe")
   done();
});

感谢您的帮助!

【问题讨论】:

  • 如果要验证条目,意味着您需要确保数据确实正确插入到数据库中。如何做到这一点,保存后,您需要使用 findOne 直接将数据查找到数据库中,然后验证您获取的数据是否与您打算插入的数据匹配。
  • 谢谢!我想我明白了——findOne 实际上是在 MongoDB 中找到一个文档,并且不只是返回我们刚刚创建的 User 实例,对吗?
  • 是的,正确的,如果你不使用 findOne,它只会检查内存中创建的实例,而不是在 mongo 中创建的实例,因此验证不正确.. 我将其发布为答案,你能接受它作为正确答案吗?谢谢:)

标签: database mongodb validation promise nosql


【解决方案1】:

如果要验证条目,则意味着您需要确保数据确实正确插入到数据库中。如何做到这一点,保存后,您需要使用 findOne 直接将数据查找到数据库,然后验证您获取的数据是否与您打算插入的数据匹配

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-22
    • 1970-01-01
    • 2014-10-03
    • 2023-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多