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));
}
});
}
});
};

转载于:https://www.cnblogs.com/Ysera-Dreamer/p/7411242.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值