微信小程序创建集合,从入门到实战详解
发布时间:11-14来源:微信小程序工具|微信小程序开发|微信小程序制作平台-龙图应用【XcxIP.com】
我在微信开发者工具里敲下第一行初始化云开发的代码时,旁边的实习生凑过来问:“哥,这集合到底是个啥?”我指着屏幕上的“集合”两个字跟他说,你可以把它想象成一个Excel表格,只不过这个表格能装几百万行数据,还能随时随地增删改查。他似懂非懂地点点头,然后我让他自己动手创建一个集合试试。

创建集合的第一步,你得先在微信开发者工具里开通云开发。这个入口藏得不算深,工具栏上那个云朵图标点进去,按提示开通就行。开通之后你会看到一个控制台,左边菜单栏里有个数据库选项,点进去就能看到“集合”这个入口。这里有个坑,很多人第一次找不到创建按钮,其实它在数据库页面的右上角,一个不太起眼的“+”号。
点开“+”号之后,系统会弹出一个对话框,让你输入集合名称。这个名称有讲究,不能用中文,不能用大写字母,最好用英文小写加下划线。比如你想存用户信息,就叫userinfo,想存商品数据,就叫goodslist。我第一次创建集合时用了拼音,后来项目大了,同事看到那些集合名直挠头,所以命名这事,从一开始就得想清楚。
创建完空集合,你可能会觉得有点懵,这不就是个空白页面吗?别急,真正的干货在权限设置里。点击集合名称进入详情页,你会看到四个权限选项:仅创建者可读写、所有用户可读仅创建者可写、所有用户可读写。这四个选项直接决定你的小程序数据安全性,选错了后面全是坑。
我见过太多新手直接选“所有用户可读写”,图省事,结果上线没几天,数据库被人恶意清空,哭都来不及。正确的做法是,如果你的数据需要用户自己维护,比如个人笔记,就选“仅创建者可读写”;如果数据是公开的,比如商品列表,就选“所有用户可读仅创建者可写”。记住一个原则:能不开写权限就不开,能不开读权限也不开。
集合建好了,权限设好了,接下来该往里面填数据了。这一步你可以在控制台手动添加,也可以写代码通过API操作。手动添加适合测试数据,点“添加记录”按钮,会弹出一个JSON编辑框,你把数据按JSON格式填进去就行。比如你要存一个用户,就写:{“name”:“张三”,“age”:25,“city”:“北京”},保存之后这条记录就进集合了。
但实际开发中,数据肯定得通过代码写入。这时候就要用到微信小程序云开发的数据库API了。在页面的js文件里,先要获取数据库引用,代码是const db = wx.cloud.database(),然后通过db.collection(‘userinfo’).add({data: {name: ‘李四’, age: 30}})就能往集合里加数据。注意这个add方法返回的是一个Promise,你可以用then和catch来处理成功和失败的情况。
读取数据比写入稍微复杂一点,因为涉及到查询条件。比如你想从userinfo集合里找出所有年龄大于20的用户,代码得这么写:db.collection(‘userinfo’).where({age: .gt(20)}).get()。这里面的下划线是数据库操作符,需要引入const = db.command。很多新手卡在这一步,报错说找不到下划线,其实就是忘了引入这个command对象。
更新和删除相对简单,但有个大坑必须提醒你。在微信小程序端,默认情况下你只能更新和删除自己创建的数据,这是云开发的安全规则决定的。如果你在控制台测试时能删能改,但一到真机预览就报权限错误,八成就是这个原因。解决办法有两个:要么把操作逻辑放到云函数里执行,要么调整集合权限。但云函数是进阶玩法,新手期我建议先在控制台把数据管理好,等熟悉了再上云函数。
说到实战案例,我拿自己做过的一个二手书交易小程序举例。当时需要两个集合,一个存书本信息叫booklist,一个存交易记录叫traderecord。booklist的权限设为“所有用户可读仅创建者可写”,因为每个人都能看到别人挂的书,但只能改自己的;traderecord设为“仅创建者可读写”,因为交易记录是私密的。这个设计让后续开发省了不少事,数据隔离做得好,逻辑就清晰。
还有个易错点得单独拎出来说。你在创建集合时,系统会自动生成一个id字段,这个字段是唯一的,可以用来定位某条记录。但id是只读的,你不能手动修改它。如果你需要自定义主键,得额外加一个字段,比如bookid,然后在代码里通过where条件来查询。千万别试图去改_id,系统会直接给你报错。
集合的数量和容量也有限制。免费配额下,一个环境最多创建100个集合,每个集合最多存储2GB数据。听起来挺多,但如果你存的是图片地址或者大段文本,很快就会超。我的建议是,定期清理无用数据,或者把一些不常用的历史数据迁移到云端存储。别等到报错才想起来处理,那时候就手忙脚乱了。
说个提升效率的小技巧。在控制台里你可以直接导入JSON文件来批量添加数据,省去一条条手敲的功夫。格式很简单,一个JSON数组,每个元素对应一条记录,比如[{“name”:“王五”,“age”:28},{“name”:“赵六”,“age”:32}],然后导入时选择你的集合,系统会自动识别字段并写入。我建集合初期就是用这个方法,半小时就把一千条测试数据灌进去了,比手点快十倍不止。
微信小程序创建集合这事,听着简单,做起来全是细节。从命名规范到权限设置,从API调用到数据安全,每一步都藏着前人踩过的坑。我把这些经验写出来,就是希望你能少走弯路。当你真正上手操作一遍,把这些流程跑通,你会发现集合其实就是你小程序的数据地基,地基打牢了,上面的业务逻辑再复杂也不怕。别光看不练,去开发者工具里创建一个属于你的集合吧,遇到报错别慌,对照着这篇文章排查一遍,大多都能解决。
