微信小程序云开发是一种新的技术,它可以帮助开发者快速构建小程序,并且可以轻松地使用云端数据库来存储和获取数据。但是,有时候在使用微信小程序云开发api获取集合数据时会出现失败的情况。
首先,我们要明白微信小程序云开发api获取集合数据失败的原因。其中一个原因是由于请求的集合不存在,或者请求的集合不存在对应的数据。此外,如果请求的集合存在但是不能正常工作,也会导致微信小程序云开发api获取集合数据失败。
其次,我们要明白如何避免这样的问题。首先,要注意使用正确的API方法来请求集合数据。例如,如果要读取一个集合中所有文档的内容,则需要使用get方法而不是post方法。此外,还要注意使用正确的API版本来请求集合数据。例如,如果当前API版本为2.0.0,则必须使用2.0.0版本来请求集合数据。
wx.cloud.callFunction({ name: 'getCollectionData', // 云函数名称 data: {}, // 向云函数传递的参数 success: res => {}, // 请求成功回调函数 fail: err => {} // 请求失败回调函数 })
最后,我们还要注意代码书写标准和代码风格问题。例如上面代码中name、data、success、fail这4个字段都必须写上才能正常工作。此外,还要注意代码风格问题:例如上面代码中name、data、success、fail这4个字
获取集合数据,或获取根据查询条件筛选后的集合数据。
如果没有指定 limit,则默认最多取 20 条记录。
如果没有指定 skip,则默认从第 0 条记录开始取,skip 常用于分页,例子可见本节的第二个示例代码。
函数签名如下:
function get(options?: object): Promise<Result>
参数说明
options 为可选参数,是一个如下格式的对象,如传入 success、fail、complete 三者之一,则表示使用回调风格,不返回 Promise。
字段名 | 类型 | 必填 | 默认值 | 说明 |
---|---|---|---|---|
success | Function | 否 | 成功回调,回调传入的参数 Result 包含查询的结果,Result 定义见下方 | |
fail | Function | 否 | 失败回调 | |
complete | Function | 否 | 调用结束的回调函数(调用成功、失败都会执行) |
返回值说明
如不传 options 参数,或传入的 options 参数没有 success、fail、complete 字段,则返回一个 Promise,否则不返回任何值。Promise的 resolve 和 reject 的结果定义如下:
结果说明 | |
---|---|
resolve | 查询的结果,Result 定义见下方 |
reject | 失败原因 |
Result 说明
success 回调的结果及 Promise resolve 的结果 Result 是一个如下结构的对象:
字段 | 类型 | 说明 |
---|---|---|
data | Array | 查询的结果数组,数据的每个元素是一个 Object,代表一条记录 |
示例代码 1
获取我的待办事项清单
回调风格
const db = wx.cloud.database()
db.collection("todos").where({
_openid: "xxx" // 填入当前用户 openid
}).get({
success: function(res) {
console.log(res.data)
}
})
Promise 风格
const db = wx.cloud.database()
db.collection("todos").where({
_openid: "xxx" // 填入当前用户 openid
}).get().then(res => {
console.log(res.data)
})
示例代码 2:分页取数据
获取我的第二页的待办事项清单,假设一页 10 条,现在要取第 2 页,则可以指定 skip 10 条记录
// Promise 风格
const db = wx.cloud.database()
db.collection("todos")
.where({
_openid: "xxx", // 填入当前用户 openid
})
.skip(10) // 跳过结果集中的前 10 条,从第 11 条开始返回
.limit(10) // 限制返回数量为 10 条
.get()
.then(res => {
console.log(res.data)
})
.catch(err => {
console.error(err)
})
Collection.where指定筛选条件方法签名如下:function where(rule: object): Query方法接受一个必填对象参数 rule,用...
db.command.and查询指令,用于表示逻辑 "与" 的关系,表示需同时满足多个查询筛选条件示例代码如筛选出进度大于 50 小于 100 的 ...
Collection.where指定筛选条件方法签名如下:function where(rule: object): Query方法接受一个必填对象参数 rule,用...
CloudPay.unifiedOrder()支持端:云函数 2.0.2统一下单说明商户在小程序中先调用该接口在微信支付服务后台生成预支付交易单,返...
Aggregate.bucketAuto(object:Object):Aggregate支持端:小程序 2.7.4,云函数 0.8.1,Web聚合阶段。将输入记录根据给定的条件划分...