mongoose联表查询

/**
* dataGird数据表格查询路由,其中涉及到根据列排序、获取不一样
* 任务状态数据、以及获取当前登陆者相匹配的数据
*/
router.route('/queNotic').get(function (req, res) {
//分页数据获取
var page = req.query.page; //用于分页查询提供当前页数
var length = req.query.rows; //用于分页查询提供每页行数
//业务逻辑数据获取
var status=req.query.status; //只获取某种任务状态的数据、故页面被分为三种任务状态所对应
var name = req.query.name; //用于任务名模糊查询
var sort= req.query.sort; //用于点击列头获取须要以哪一列数据做为排序依据
var order=req.query.order; //用于表示升序排列或者降序排列,只有两个值 'asc' 或者 'desc
var year=req.query.year; //在已完成和全部任务页面中、进行年份的为依据的模糊查询
var sortItem={sort:sort,order:order}; //排序依据造成排序对象
var current_id=req.session.current_user._id;//获取当前登陆用户的id。用于只显示接收人或者发送者为当前用户的数据
if (page == 0) {
page = 1;
}
var condition={status:status,name:name,current_id:current_id,year:year};
console.log('分页参数:page=' + req.query.page + ',length=' + req.query.rows);

service.getPmListForNotice(page,length,condition,sortItem,function (result) {
utils.respJsonData(res, result);
});
});
 
 
 
/** * easyui分页查询 * @param page 页数 * @param size 分页大小 * @param condition 条件(包括任务名称、年份等) * @param cb 回调函数,处理json数据以及服务器相应信息封装. * @param sortItem 排序参数 * */exports.getPmListForNotice = function(page, size, condition,sortItem, cb) {    var query=model.$user_pm_statusModel.find({});    query.populate('pm_id');    query.skip((parseInt(page) - 1) * size);    query.limit(parseInt(size));    query.where({status:condition.status,user_id:condition.current_id});    //计算分页数据    query.exec(function(err,rs){        if(err){            cb(utils.returnMsg(false, '1000', '根据姓名查询出现异常。', null, err));        }else{            //计算数据总数            model.$user_pm_statusModel.find({}).populate('pm_id').exec(function(err,result){                if(err){                    cb(utils.returnMsg(false, '1000', '根据姓名查询出现异常。', null, err));                }else {                    var pmArray=[];                    for(var i in rs){                        pmArray.push(rs[i].pm_id);                    }                    cb(utils.returnMsg4EasyuiPaging(true, '0000', '根据姓名查询成功。', pmArray, result.length));                }            });        }    });};
相关文章
相关标签/搜索