Mongoose查询不返回任何值

时间:2016-10-17 14:52:32

标签: node.js mongodb express mongoose

我目前正在创建一个MEAN应用程序,允许用户从ownedPlayers列表中创建一个足球队。目前,当我尝试对MongoDB中的ownedPlayers集合进行http.get调用时,它总是返回一个空数组。

OwnedPlayers的我的猫鼬模型如下。

var OwnedPlayers = mongoose.model('OwnedPlayers', {
    userid: String,
    playerid: String,
    position: String
});

端点和查询如下。

app.get('/api/ownedPlayers', function (req, res) {
    console.log('userid used in request', req.query.userid)
    console.log('position used in request', req.query.position)

    OwnedPlayers.find({
        userid: req.query.userid, position: req.query.position
    }, function (err, owned)
    {
        if (err)
        {
            res.send(err);
        }
        console.log('owned',owned);
        res.json(owned);
    });
});

我可以确认req.query.userid和req.query.position中的值与我的ownedPlayers集合中的单个记录匹配。这可以通过我的nodejs输出看到。

App listening on port 8080
GET /api/teams/57f50267418cb72fd020196a 304 31.936 ms - -
userid used in request 57f50267418cb72fd020196a
position used in request goal
owned []
GET /api/ownedPlayers?userid=57f50267418cb72fd020196a&position=goal 304 32.903 ms - -

我还可以确认密钥名称是正确的用户ID和位置。

我希望在userid = 57f50267418cb72fd020196a和position = position = goal时返回的文件如下。

_id:57f7717ab1f0f22f3c3950b9
userid:57f50267418cb72fd020196a
playerid:57f7797e00ea2a0dc8609701
position:goal

我非常感谢任何帮助,因为我对mongodb和应用程序都很陌生。

提前致谢。

1 个答案:

答案 0 :(得分:0)

问题在于,由于我使用的文件不是通过mongoose创建的,因此没有正确找到该集合。

通过在创建模型时将集合名称作为第三个参数传递,这显式设置集合名称并指向正确方向的猫鼬。