在我的快速应用中,我有一个猫鼬模式,如下所示:
用户模型架构:
const userSchema = new mongoose.Schema({
username: {
type: String,
required: true,
unique: true,
minlength: 4,
maxlength: 50
},
email: {
type: String,
required: true,
minlength: 3,
maxlength: 255,
unique: true
},
password: {
type: String,
required: true,
minlength: 6,
},
})
这是我在一个端点中执行的一项操作。如果req.body.usernameOrEmail
与username
的{{1}}或email
相匹配,我希望可以返回用户。操作如下:
User
发生的事情是,如果我放任何东西let user = await User.find({ $or: [ { username: req.body.usernameOrEmail }, { email: req.body.usernameOrEmail } ] })
if (!user) return res.send('No user found')
,则会{strong>未打印出预期的req.body.usernameOrEmail
消息。有人知道上面执行的操作出了什么问题吗?谢谢。
答案 0 :(得分:3)
等待的.find()
方法返回一个空数组,该数组在JavaScript中为 truthy ,请尝试:
console.log(![])
您可以改用.findOne()
,在这种情况下,null
将在没有匹配项且条件适用的情况下返回