Mongodb 分页写法

Mongodb语句的查询语法和传统的关系型数据库基本不同,Mongodb里关于取数据的分页有几种不同的写法,不同的写法适用不同的场合,

简单的有 limit,skip等,

如果需要取分页数据,同时需要返回总数据条数,并且用一个查询语句,可以用push, slice的语法

{ $slice: [ <array>, <position>, <n> ] }
		{ $group: { _id: null, total: { $sum: 1 }, data: { $push: '$tmp' } } },
		{ $project: { total: '$total', data: { $slice: ['$data', start, length] } } }
db.collection('collection_namea')
    .aggregate(
	[
	    {
			$match: {
				...
			}
		},
		...
		{
			$project: {
				tmp: {
					userid: '$userid',
					username: '$username',
					class: '$class',
					grade: '$grade'
				}
			}
		},
		{ $group: { _id: null, total: { $sum: 1 }, data: { $push: '$tmp' } } },
		{ $project: { total: '$total', data: { $slice: ['$data', start, length] } } }
	]
	)
	.toArray()
	.then((dataset) => {
		...
	})
	.catch((err) => {
		...
	});

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值