Bootstrap

unicloud云数据库中的get()查询,一次最多查询100条,如何将表中所有的数据获取过来那?

场景复现

每次使用get()方法查询数据,最多可以查询100条数据;
因此,如果用户表中有10万条数据,一次性查询所有数据是不可行的;
为了查询所有数据,可以使用分页查询的方式;
配合skip()和limit()每次查询100条数据,直到查询完所有数据为止。

代码实现

async function getData(){
	let userList = []; // 所有用户列表
	let limit = 100; // 每次查询的数量
	let offset = 0; // 偏移量	
	let {result:{total}} = await db.collection('user').count(); // 总数量		
	do {
	  let {result:{data}} = await db.collection('user').skip(offset).limit(limit).get();
	  userList = userList.concat(data); // 将查询到的数据添加到列表中	 
	  offset += limit; // 更新偏移量
	} while (offset < total);
	console.log(userList);	
}
;