Node.js 从MongoDB中的集合获取文档时出错

Node.js 从MongoDB中的集合获取文档时出错,node.js,mongodb,mongoose,mongodb-query,Node.js,Mongodb,Mongoose,Mongodb Query,我正在开发一个应用程序,我必须通过sportsname进行过滤。我是 在后端使用Node.js和MongoDB 这是我的密码:- 这是文件。我想按sportsname搜索用户 当我在那个时间运行时,它给出了一个错误。错误如下所示:- TypeError: path must be a string at Query.where (/node/node-api-master/node_modules/mongoose/lib/query.js:593:11) at Object.handle

我正在开发一个应用程序,我必须通过sportsname进行过滤。我是 在后端使用Node.js和MongoDB

这是我的密码:-

这是文件。我想按sportsname搜索用户

当我在那个时间运行时,它给出了一个错误。错误如下所示:-

TypeError: path must be a string at Query.where 
(/node/node-api-master/node_modules/mongoose/lib/query.js:593:11) 
at Object.handle (/node/node-api-master/server.js:202:19) at next_layer 
(/node/node-api-master/node_modules/express/lib/router/route.js:103:13) 
at Route.dispatch (/node/node-api-master/node_modules/express/lib/router/route.js:107:5) 
at /node/node-api-master/node_modules/express/lib/router/index.js:195:24 
at param (/node/node-api-master/node_modules/express/lib/router/index.js:268:14) 
at param (/node/node-api-master/node_modules/express/lib/router/index.js:280:16) 
at param (/node/node-api-master/node_modules/express/lib/router/index.js:280:16) 
at Function.proto.process_params 
(/node/node-api-master/node_modules/express/lib/router/index.js:296:3) 
at next (/node/node-api-master/node_modules/express/lib/router/index.js:189:19)

这是一个语法问题,下面是您尝试执行的正确实现:

router.get('/user/:_id/explore/:sportsname', function(req, res, next) {
  return Host.find({ sportsname: req.params.sportsname }, function(err, users) {
    if (err) return next(err);
    console.log(users);
    return res.json(users);
  });
});

请注意,检查req.params.sportsname是否存在是不必要的,因为如果不存在,您的路线将永远无法到达。如果要使此参数成为可选参数,请使用以下命令:/user/:\u id/explore/:sportsname?在参数后添加问号。

能否编辑问题以显示主机架构定义?我认为这是因为代码中存在语法问题,请查看并检查警告
TypeError: path must be a string at Query.where 
(/node/node-api-master/node_modules/mongoose/lib/query.js:593:11) 
at Object.handle (/node/node-api-master/server.js:202:19) at next_layer 
(/node/node-api-master/node_modules/express/lib/router/route.js:103:13) 
at Route.dispatch (/node/node-api-master/node_modules/express/lib/router/route.js:107:5) 
at /node/node-api-master/node_modules/express/lib/router/index.js:195:24 
at param (/node/node-api-master/node_modules/express/lib/router/index.js:268:14) 
at param (/node/node-api-master/node_modules/express/lib/router/index.js:280:16) 
at param (/node/node-api-master/node_modules/express/lib/router/index.js:280:16) 
at Function.proto.process_params 
(/node/node-api-master/node_modules/express/lib/router/index.js:296:3) 
at next (/node/node-api-master/node_modules/express/lib/router/index.js:189:19)
router.get('/user/:_id/explore/:sportsname', function(req, res, next) {
  return Host.find({ sportsname: req.params.sportsname }, function(err, users) {
    if (err) return next(err);
    console.log(users);
    return res.json(users);
  });
});