[英]Is there a way to know if there are more documents available for pagination in MongoDB?
[英]Which is a more reasonable way in mongodb?
有两种查询登录的方式,都是使用query once
let where = {
username
};
//check username first
let result = await UserModel.findOne(where)
if (result != null) {
if (result.password === password) {
return done(null, result)
} else {
return done(null, false, 'wrong password')
}
} else {
return done(null, false, 'user does not exist')
}
和
let where = {
username,
password
};
//check username and password
let result = await UserModel.findOne(where)
if (result != null) {
return done(null, result)
} else {
return done(null, false, 'wrong password or username')
}
哪个更好,为什么? 谢谢你。
问问自己这个问题。
let query = {
matchValue: "someValue",
someValue: { $gt: 1 },
someOtherValue: { $gte: 1 }
}
const results = await model.findOne(query)
if (results) // do something
对比
let query = {
matchValue: "someValue"
}
const results = await model.findOne(query);
if (results.someValue > 1 && results.someValue >== 1){
... do something.
}
如果检查可以通过 mongodb(性能更高)完成,为什么要在 javascript 中进行?
除了性能之外,您的两个逻辑都以相同的方式工作,并返回相同的结果。
无论结果是什么(无效的用户名或密码),对前端的响应应该始终是“无效的用户名/密码”
好吧,根据我的说法,您应该首先询问用户名,如果与数据库匹配,那么我们应该询问密码。 如果您向用户询问用户名,您应该尽快验证该用户。 否则,用户可能会在他们的联系信息中输入错误,然后花费大量时间使用您的服务,但在他们下次尝试登录时却发现没有与他们的信息匹配的帐户。 如果没有人工干预,这些帐户通常是孤立的并且无法恢复。 更糟糕的是,联系信息可能属于其他人,将帐户的完全控制权交给了第三方。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.