我有一个基本的用户
架构
var UserSchema = new Schema({
name: {
type: String,
required: true
},
password: {
type: String,
required: true
}
});
现在我想实现双重登录
功能,
async.parallel([
function (cb) {
User.findOne({$and: [{name: req.body.username1}, {password: req.body.password1}]}, function (err, u) {
if (!u)
err = "User1 dose not exist";
cb(err, u)
});
},
function (cb) {
User.findOne({$and: [{name: req.body.username2}, {password: req.body.password2}]}, function (err, u) {
if (!u)
err = "User2 dose not exist";
cb(err, u)
});
}
], function (err, results) {
....
我想知道是否有简单的方法可以在一个 User.find()
函数中查找这两个用户信息?
最佳答案
您只需使用 $or
。还有您对 $and
的使用这里是多余的:
User.find({
"$or": [
{ "name": req.body.username1, "password": req.body.password1 },
{ "name": req.body.username2, "password": req.body.password2 }
]
},function(err,result) {
// logic in here
})
然后处理验证响应所需的任何逻辑,最明显的情况是,如果响应的长度不是至少两项,则找不到其中一项选择。
这是“用户名”当然应该具有唯一约束的情况之一。
关于javascript - Mongoose 查找多个文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28892379/