【问题标题】:How to I transform this sql into mongoose?如何将此 sql 转换为猫鼬?
【发布时间】:2014-06-20 14:47:11
【问题描述】:
SELECT *
FROM user
WHERE (
      id_1 = '$entity_id' OR 
      id_2 = '$entity_id' OR  
      id_3 = '$entity_id' OR 
      id_4 = '$entity_id'
      ) AND 
      token = '$token'

我有一个名为“用户”的模型。我需要检查用户是否拥有提供的令牌以及是否至少有一个 id_* 与 $entity_id 匹配。

我试过了,但没用:

mongoose.model('User').find(
        { 'local.token': req.query.token },
        {$or: [
            { "local._dormitory": req.params.id },
            { "local._building": req.params.id },
            { "local._hall": req.params.id },
            { "local._room": req.params.id }
        ]}, {}, function(err, doc){
        if(err) {
            console.log(err);
            return false;
        }
        if(doc != null) {
            console.log("Scope access exists");
            console.log(doc);
            return true;
            // res.json(200, { message: doc, Response: "true" });
        } else {
            console.log("Scope access doesn't exist");
            return false;
            // res.json(401, { message: "Auth failed" });
        }
    });

【问题讨论】:

    标签: mongoose mean-stack


    【解决方案1】:

    您需要将查询的两个部分放入同一个查询对象中:

    mongoose.model('User').find(
        { 'local.token': req.query.token,
          $or: [
            { "local._dormitory": req.params.id },
            { "local._building": req.params.id },
            { "local._hall": req.params.id },
            { "local._room": req.params.id }
        ]}, {}, function(err, doc){
        ...
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-29
      • 2017-07-08
      • 2015-10-02
      • 1970-01-01
      • 2021-01-22
      • 1970-01-01
      • 2015-09-11
      相关资源
      最近更新 更多