一开始想的是直接
db.collection('media').get()
不就完了吗?谁想到文档中有这个限制
获取一个集合的数据
如果要获取一个集合的数据,比如获取 todos 集合上的所有记录,可以在集合上调用
get
方法获取,但通常不建议这么使用,在小程序中我们需要尽量避免一次性获取过量的数据,只应获取必要的数据。为了防止误操作以及保护小程序体验,小程序端在获取集合数据时服务器一次默认并且最多返回 20 条记录,云函数端这个数字则是 100。开发者可以通过limit
方法指定需要获取的记录数量,但小程序端不能超过 20 条,云函数端不能超过 100 条。
wqnmd,
官方文档只有云函数的做法:
const cloud = require('wx-server-sdk')
cloud.init()
const db = cloud.database()
const MAX_LIMIT = 100
exports.main = async (event, context) => {
// 先取出集合记录总数
const countResult = await db.collection('todos').count()
const total = countResult.total
// 计算需分几次取
const batchTimes = Math.ceil(total / 100)
// 承载所有读操作的 promise 的数组