【微信小程序】云数据库获取所有记录

一开始想的是直接

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 的数组
### 微信小程序云数据库使用教程 #### 获取数据库引用 为了执行任何增删改查的操作,首先需要获得数据库的引用。这可以通过调用微信云开发提供的`database()`函数来完成。 ```javascript const db = wx.cloud.database() ``` 此代码片段创建了一个指向默认环境中的数据库实例的对象[^3]。 #### 数据库回档功能 自版本1.02.202002282起,微信小程序云开发引入了数据库回档特性。系统每天凌晨都会自动为数据库做一次备份,最多可保留最近7天的数据副本。如果遇到数据损坏或其他问题,可以在控制台发起新的回档任务,将特定集合恢复到之前的某个时刻的状态[^2]。 #### 增删改查基本操作 对于具体的文档或记录级别的操作,则需进一步获取对应的集合(`collection`)以及单记录(`doc`)的引用: - **增加新纪录** 向名为`todos`的集合中添加一待办事项记录的例子如下所示: ```javascript try { await db.collection('todos').add({ data: { description: 'Learn cloud database', done: false, }, }) } catch (e) { console.error(e) } ``` - **查询现有记录** 查询所有未完成的任务项可以这样实现: ```javascript try { const res = await db.collection('todos') .where({done: false}) .get(); console.log(res.data); } catch (e) { console.error(e); } ``` - **更新已有记录** 更新某具体ID下的todo状态为例: ```javascript try { await db.collection('todos') .doc(todoId) .update({ data: {done: true}, }); } catch (e) { console.error(e); } ``` - **删除记录** 删除指定id的todo项目: ```javascript try { await db.collection('todos') .doc(todoId) .remove(); } catch (e) { console.error(e); } ``` 上述例子展示了如何利用API来进行常见的CRUD(Create, Read, Update and Delete)操作[^5]。 #### 安全性和权限管理 当涉及到敏感信息处理时,比如访问密钥(secretId和secretKey),务必小心保管这些凭证,并仅限授权人员知晓其获取途径——即通过腾讯云平台的安全渠道取得[^1]。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值