javascript - MongoDB User.findOne({email:email})
问题描述
findOne 返回 null 总是
我在数据库中有“user(hello@gmail.com)”数据,但 User.findOne 总是返回 null。请帮我。我有一个在后台运行的节点,但它给了我 null 。req.body给出了我通过但 findOne 不工作的电子邮件。User.create工作正常。但是像find、findById、findOne这样的搜索查询 不起作用。有人请帮助我。
const userSchema = new mongoose.Schema({
name: {
type: String,
required: [true, 'A user must have a unique name'],
unique: true,
},
password: {
type: String,
required: true,
unique: true,
minlength: 8,
},
email: {
type: String,
required: [true, 'A user must have a unique name'],
unique: true,
lowercase: true,
}
const User = mongoose.model("User", userSchema);
exports.getTest=async (req,res)=>{
const {email} = req.body // returns "hello@gmail.com"
const user = await User.findOne({email})
console.log(user) //returns null
res.json({
status:"success",
data:{
user
}
})
}
解决方案
我感觉您的问题出在测试的前两行?
const {email} = req.body // returns "hello@gmail.com"
const user = await User.findOne({email})
如果您req.body
只是返回电子邮件字符串,那么您的查询可能不是正确的 JSON 格式?
您确定查询实际上最终User.findOne({email: "hello@gmail.com"})
不是 justUser.findOne("hello@gmail.com")
吗?
也不确定你exec()
最后是否需要,但它确实执行查询并返回一个 Promise ...
推荐阅读
- bash - 发送选项后有没有办法让zenity窗口不退出?
- excel - 基于 Power Pivot 的数据透视表中的奇数结果
- flutter - 通过小部件构造函数传递数据
- python - 使用 CDSView 过滤后具有组计数的散景 vbar
- java - 正则表达式代码未收集多行匹配模式
- java - JDA:如何检测成员是如何从公会中移除的?
- mysql - MySQL 8.0 工作台错误启动和停止以及选项文件
- informatica - INFORMATICA Traget 平面文件。如何将数据与标题对齐
- php - 在 Doctrine (Symfony 4.4) 中对同一实体字段使用多个过滤器
- spring-boot - Gradle SpringBoot 2.4.2 使用带有标签的 bootBuildImage