繁体   English   中英

猫鼬查找多个文档

[英]mongoose find multiple documents

我有一个基本的User架构

var UserSchema = new Schema({
  name: {
    type: String,
    required: true
  },
  password: {
    type: String,
    required: true
  }
});

现在我要实现dual login功能,

  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

  })

然后处理需要用来验证响应的任何逻辑,最明显的情况是,如果响应的长度不小于两个项目,则找不到选择之一。

这是“用户名”当然应该具有唯一约束的情况之一。

暂无
暂无

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

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