我目前正在创建一个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和应用程序都很陌生。
提前致谢。
答案 0 :(得分:0)
问题在于,由于我使用的文件不是通过mongoose创建的,因此没有正确找到该集合。
通过在创建模型时将集合名称作为第三个参数传递,这显式设置集合名称并指向正确方向的猫鼬。