1. 程式人生 > >Mongodb 分頁寫法

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) => {
		...
	});