微信小程序获取云服务器数据,微信小程序云开发服务端数据库API 获取集合数据...

Collection.get / Query.get

获取集合数据,或获取根据查询条件筛选后的集合数据。

如果没有指定 limit,则默认最多取 20 条记录。

如果没有指定 skip,则默认从第 0 条记录开始取,skip 常用于分页,例子可见第二个示例代码。

如果需要取集合中所有的数据,可以参考第三个示例代码

函数签名如下:function get(): Promise

返回值说明

Promise 的 resolve 和 reject 的结果定义如下:结果说明resolve查询的结果,Result 定义见下方

reject失败原因

Result 说明

Promise resolve 的结果 Result 是一个如下结构的对象:字段类型说明dataArray查询的结果数组,数据的每个元素是一个 Object,代表一条记录

示例代码 1

获取我的待办事项清单

Promise 风格const cloud = require('wx-server-sdk')

cloud.init()

const db = cloud.database()

exports.main = async (event, context) => {

return await db.collection('todos').where({

_openid: 'xxx' // 填入当前用户 openid

}).get()

}

示例代码 2:分页取数据

获取我的第二页的待办事项清单,假设一页 10 条,现在要取第 2 页,则可以指定 skip 10 条记录const cloud = require('wx-server-sdk')

cloud.init()

const db = cloud.database()

exports.main = async (event, context) => {

return await db.collection('todos')

.where({

_openid: 'xxx', // 填入当前用户 openid

})

.skip(10) // 跳过结果集中的前 10 条,从第 11 条开始返回

.limit(10) // 限制返回数量为 10 条

.get()

}

示例代码 3:取集合所有数据

获取集合中的所有待办事项清单:因为有默认 limit 100 条的限制,因此很可能一个请求无法取出所有数据,需要分批次取: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 的数组

const tasks = []

for (let i = 0; i < batchTimes; i++) {

const promise = db.collection('todos').skip(i * MAX_LIMIT).limit(MAX_LIMIT).get()

tasks.push(promise)

}

// 等待所有

return (await Promise.all(tasks)).reduce((acc, cur) => {

return {

data: acc.data.concat(cur.data),

errMsg: acc.errMsg,

}

})

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值