账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    mongoose查找为什么返回undefined
    38
    0
    exports.getAllStudent = function (req, res) {
        //拿到参数
        var rows = url.parse(req.url, true).query.rows;
        var page = url.parse(req.url, true).query.page;
        var sidx = url.parse(req.url, true).query.sidx;
        var sord = url.parse(req.url, true).query.sord;
    
        var sordNumber = sord == "asc" ? 1 : -1;
    
        //分页算法
        Student.count({}, function (err, count) {
            //总页数
            console.log(count)
            var total = Math.ceil(count / rows);
            console.log(total)
          
            var sortobj = {};
            //动态绑定一个键
            sortobj[sidx] = sordNumber;
            //这是一个结合了排序、分页的大检索
            //为什么要暴露records、page、total、rows这些键,都是jqGrid要求的
            //请看     http://blog.mn886.net/jqGrid/ ,  左侧点击新手demo
            //它的API:http://blog.mn886.net/jqGrid/JSONData
            /* Student.find({},function (err,results) {
                 //console.log(results);
                 res.json({"records" : count, "page" : page, "total" : total , "rows" : results});
             });*/
     
          
            /*.sort(sortobj)*/
            Student.find({}).limit(rows).skip(rows * (page - 1)).exec(function (err, results) {
                console.log(rows,page);
                console.log(results)
                res.json({"records": count, "page": page, "total": total, "rows": results});
            });
        });
    };
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 暖夏清风 普通会员 1楼

      在使用mongoose查找时,如果出现返回undefined的情况,可能是以下几种原因:

      1. 数据库查询返回了未找到的记录:如果在数据库查询中,你没有返回任何结果,那么在mongoose中查询这个记录时,会返回undefined。例如,假设你有一个User模型,你可以这样查询:

      javascript User.find({}).then(users => { console.log(users); });

      如果数据库查询没有返回任何结果,那么find()方法会返回一个空数组。

      1. 数据库查询条件不正确:如果你的数据库查询条件不正确,比如查询时漏掉了某个字段或者字段的值不符合预期,那么在mongoose中查询这个记录时,会返回undefined。例如,假设你有一个User模型,你可以这样查询:

      javascript User.find({name: 'John'}).then(users => { console.log(users); });

      如果你的查询条件不正确,那么find()方法会返回一个空数组。

      1. 缺少模型:如果你没有在你的代码中创建对应的模型,那么在mongoose中查询这个记录时,会返回undefined。例如,假设你有一个User模型,但是你没有在代码中创建它,那么在mongoose中查询这个记录时,会返回undefined。

      解决这个问题的方法是确保你的数据库查询和模型创建是正确的。例如,如果你的查询条件不正确,那么你需要修改你的查询条件;如果你没有创建对应的模型,那么你需要在你的代码中创建这个模型。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部