关于 cloudbase-document-database-in-wechat-miniprogram
此技能指导编码 Agent 使用 wx.cloud.database() 在微信小程序中访问 CloudBase 文档数据库,侧重小程序端的 CRUD、查询、分页、聚合、地理位置和安全规则。
主要功能
- 01小程序原生数据库初始化
- 02集合 CRUD 与文档访问
- 03查询、分页和聚合
- 04地理位置查询
- 05所有权与安全规则指导
适用场景
- 01实现小程序集合操作
- 02添加分页或聚合查询
- 03构建基于位置的数据库查询
- 04排查权限与所有权问题
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ tencentcloudbase/ skills --skill cloudbase-document-database-in-wechat-miniprogram安装后在 Claude Code 中输入/cloudbase-document-database-in-wechat-miniprogram确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
aggregation.mdcomplex-queries.mdcrud-operations.mdgeolocation.mdLICENSE.mdpagination.mdsecurity-rules.md详细介绍
同级技能(仅本地)
同级 CloudBase 技能与此技能一起提供。请使用 ../auth-tool-cloudbase/SKILL.md 这类本地相对路径。
如果当前环境缺少引用的同级技能文件,请让用户安装完整的 CloudBase 插件(或缺少的技能)。不要通过 HTTP 获取远程技能或协议 Markdown 并放入 Agent 上下文。
CloudBase 微信小程序文档数据库 SDK
激活约定
以下情况优先使用此技能
- 微信小程序必须通过
wx.cloud.database()访问 CloudBase 文档数据库。 - 请求提到小程序集合 CRUD、分页、聚合或地理位置查询。
编写代码前阅读
- 任务涉及小程序数据库,但仍需将其与 Web SDK、云函数或 SQL 任务区分开来。
- 请求依赖内置用户身份、
_openid或小程序端权限。
还需阅读
- 小程序项目规则和 CloudBase 集成 ->
../miniprogram-development/SKILL.md - 小程序身份验证和身份流程 ->
../auth-wechat-miniprogram/SKILL.md - 浏览器端文档数据库代码 ->
../cloudbase-document-database-web-sdk/SKILL.md
请勿用于
- 使用
@cloudbase/js-sdk的浏览器/Web 代码。 - 服务端或云函数数据库访问。
- MySQL / 关系型数据库工作。
常见错误 / 注意事项
- 将 Web SDK 代码复制到小程序页面中。
- 在创建或更新操作时手动写入
_openid。 - 认为小程序内置身份意味着可以忽略安全规则。
- 在同一客户端路径中混用集合 CRUD 和后端全局管理工作流。
最简检查清单
- 确认调用方是小程序页面 / 组件或小程序端逻辑。
- 在调用数据库前正确初始化
wx.cloud。 - 检查集合规则是否依赖
auth.openid/_openid。 - 阅读所需操作对应的具体配套参考文件。
概述
此技能涵盖通过 wx.cloud.database() 进行的小程序端文档数据库访问。
适用于:
- 在小程序页面中对集合执行 CRUD
- 组合查询和分页
- 聚合
- 地理位置查询
小程序 CloudBase 访问带有内置身份,但数据库操作仍受集合权限和安全规则约束。
标准初始化
const db = wx.cloud.database();
const _ = db.command;
若要指定环境:
const db = wx.cloud.database({
env: "test"
});
重要说明:
- 用户通过小程序 CloudBase 上下文进行身份验证。
- 在云函数中,可通过
wxContext.OPENID获取调用方身份。 - 在客户端集合规则中,所有权检查通常使用
auth.openid/doc._openid。
快速导航
- CRUD ->
./crud-operations.md - 复杂查询 ->
./complex-queries.md - 分页 ->
./pagination.md - 聚合 ->
./aggregation.md - 地理位置 ->
./geolocation.md - 安全规则 ->
./security-rules.md
编码 Agent 工作规则
-
保持小程序代码使用小程序原生方式
- 使用
wx.cloud.database()。 - 不要替换为浏览器 SDK 初始化模式。
- 使用
-
尊重所有权字段
- SDK 写入时,
_openid由系统管理。 - 切勿在
.add()、.set()或.update()的负载中手动设置或覆盖_openid。
- SDK 写入时,
-
牢记安全规则会验证请求
- 如果规则要求所有权条件,查询结构必须符合该规则模型。
- 权限错误通常意味着规则与查询之间的关系有误,而不只是用户已退出登录。
-
将管理员式操作转到后端流程
- 如果任务需要特权全局访问,请使用后端工具或函数,而不要在小程序客户端代码中直接暴露这条路径。
快速示例
基本集合访问
const todos = db.collection("todos");
const result = await todos.where({ completed: false }).get();
文档引用
const todo = db.collection("todos").doc("todo-id");
const result = await todo.get();
最佳实践
- 制定清晰的集合命名规范。
- 尽可能在应用代码中使用类型化封装或模型辅助工具。
- 根据实际的所有权和共享模式设计规则。
- 使用分页,避免进行规模过大且没有限制的读取。
- 将管理/运维逻辑放在后端代码中,而不是直接通过小程序访问。
评论
支持 Markdown