2017-03-01 73 views
0

我想弄清楚为什么我写的猫鼬查询总是返回null。不是[]像往常一样,但为空。猫鼬随机查询问题

下面是代码:

// Get random single opponent within 300 points of your team value in either direction 
app.get('/api/teams/getOpponent', function (req, res) { 
    var value = req.query.teamValue; 
    var owner = req.query.owner; 
    var maxVal = value + 300; 
    var minVal = value - 300; 
    var filter = { 
     value: { $gte: minVal, $lte:maxVal }, 
     owner: { $ne: owner } 
    }; 

    var fields = {} 
    var options = { limit: 1 } 
    // use mongoose to get all teams in the database 
    Team.findRandom(filter, fields, options, function (err, team) { 
     // if there is an error retrieving, send the error. nothing after res.send(err) will execute 
     if (err) 
      res.send(err) 
     res.json(team); // return a team in JSON format 
    }); 
}); 

所以基本上在这里发生的事情是一个文档_id得到传过来的还有一个数字。然后,我想要抓住一个随机的团队文档,其中一个团队在当前用户团队的300个点内,并且所有者不等于当前用户,因此他们不会最终挑战他们自己的团队。

古怪足够当我输入下面的查询到mongoCompass它返回预期的结果

{ "value": { $gte:1000, $lte:1600}, "owner": { $ne: "58986cd25e7c780011881bcd" } } 

我的角2提供商寻找使API调用如下。

getOpponent(options) { 
    console.log("options", options); 
    return new Promise(resolve => { 
     this.http.get('https://pitchlife-hearts.herokuapp.com/api/teams/getOpponent?teamValue=' + options.value + '&owner=' + options.owner) 
      .map(res => res.json()) 
      .subscribe(data => { 
       this.data = data; 
       resolve(this.data); 
      }); 
    }); 
} 

任何帮助,这将是我敢肯定我做一些愚蠢的事我只是缺乏与猫鼬的经验弄明白非常感激。

回答

0

我无法正确传递变量,因此终点正确返回空值或[]。