繁体   English   中英

确认 MongoDB 数据库中是否已存在 email

[英]confirming if an email already exists in a MongoDB database

我编写了这段代码来检查数据库中是否已经存在 email:

async store (req,res) {
const email = req.body.email;

let user = await User.findOne ({ email: email });

if (user) {
    console.log('Already exist.')
};
(...)
}

但它不起作用:我可以将信息存储在用户集合中,但它的 email 未经验证。

我正在使用 Mongoose。

我做错了什么?

您需要在最后使用exec()来实际运行查询:

let user = await User.findOne({ email: email }).exec();

此外,由于您使用的是await ,请确保包含 function 被标记为async

我可以给你的信息有限,因为你只是说“它不起作用”。 这并不能告诉我任何事情。 你运行它并且没有任何反应吗? 它会给你一个错误吗? 这个网站上的人不喜欢听到这样的话:“它不起作用”。

db.Collection.find({ /* criteria */}).limit(1).size();

您尚未描述您的用例,但如果您希望避免 email 冲突,使用 mongoose,当您定义对象的架构时,您可以使用unique: true选项。 然后它将拒绝提交已存储的 email 的任何新用户或更新用户。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM