3、云数据库基础:数据库概念、集合与文档、数据类型、创建第一个集合

好,咱们进入第三节课。

说实话,很多新手一听到「数据库」三个字就头大。觉得那是后端工程师才该碰的东西。我当年刚转全栈时也这么想,直到被一个需求逼着去搞数据存储,才发现——嗯,其实没那么玄乎。

今天咱们就把云数据库这层窗户纸捅破。你跟着我走一遍,保证能上手。

3.1 数据库到底是什么?

说白了,数据库就是一个「放数据的大仓库」。只不过这个仓库特别智能,能帮你快速存、快速查、还能保证数据不乱。

你想想看,微信小程序里用户的昵称、头像、订单记录、商品信息……这些数据总得有个地方放吧?不能每次打开小程序都让用户重新填一遍吧?

云开发给我们提供的,就是一个托管在微信服务器上的数据库。你不用自己买服务器、不用配置环境、不用操心备份。开箱即用。

核心要点:云数据库 = 微信帮你管好的数据仓库。你只需要关心「存什么」和「怎么取」。

3.2 集合与文档——别被名字吓到

这两个词,我刚开始也觉得抽象。后来发现,其实就是 Excel 里的「工作表」和「一行数据」。

  • 集合(Collection):相当于一张表。比如「用户表」、「商品表」、「订单表」。
  • 文档(Document):相当于表里的一行记录。比如某个用户的全部信息。

举个例子:

// 集合:users(用户表)
// 文档1:
{
  "_id": "abc123",
  "name": "张三",
  "age": 28,
  "city": "北京"
}

// 文档2:
{
  "_id": "def456",
  "name": "李四",
  "age": 32,
  "city": "上海"
}

每个文档都是一个 JSON 对象。你可以往里面塞各种字段,同一个集合里的文档,字段可以不一样。这一点跟传统数据库很不一样。

我的习惯:虽然云数据库允许字段不一致,但我建议你尽量保持结构统一。不然查数据时容易出幺蛾子。我在项目中吃过这个亏,后来老老实实做了字段校验。

3.3 数据类型——你得知道能存什么

云数据库支持的数据类型还挺全的。我列个表,你一看就明白:

类型 说明 示例
String 字符串 "hello world"
Number 数字 100, 3.14
Boolean 布尔值 true, false
Array 数组 [1, 2, 3]
Object 对象 {"key": "value"}
Date 日期 new Date()
Null 空值 null
Geo 地理位置 经纬度坐标

这里有个坑,我得提醒你:

我曾经踩过的坑:Date 类型在云数据库里存的是 ISODate 格式,不是普通的时间戳。如果你直接存 "2024-01-01",它会被当成字符串。查询时用时间范围过滤就会出问题。所以存时间,一定要用 new Date() 或者 db.serverDate()

3.4 创建第一个集合——动手时间

光说不练假把式。咱们现在就在云开发控制台里创建一个集合。

步骤很简单:

  1. 打开微信开发者工具,点击左侧的「云开发」图标。
  2. 进入「数据库」标签页。
  3. 点击「添加集合」按钮。
  4. 输入集合名称,比如 users
  5. 点击确定。

搞定。就这么简单。

你可能会问:「集合名有什么讲究吗?」

有。我个人习惯用英文复数。比如 users、products、orders。这样语义清晰,一看就知道里面存的是什么。

小建议:集合名不要用中文,也不要用特殊字符。微信云开发虽然支持,但你在代码里写中文集合名,自己看着都别扭。保持简单,全小写加下划线,比如 order_items

创建好之后,你可以点进去看看。里面是空的,没有任何文档。接下来咱们手动加一条数据试试:

// 在控制台点击「添加记录」
{
  "name": "测试用户",
  "age": 25,
  "city": "深圳",
  "createdAt": new Date()
}

点保存。好了,你的第一条数据库记录诞生了。

是不是没什么难度?

3.5 集合的权限——别忽视它

每个集合创建时,都会让你选一个权限设置。这个很重要,我单独拎出来说。

云数据库有四种权限:

  • 仅创建者可读写:只有添加数据的人能看能改。适合存放用户隐私数据。
  • 仅创建者可写,所有人可读:适合商品列表、公告等公开数据。
  • 所有人可读,仅管理员可写:适合配置信息。
  • 所有人不可读写:一般用于临时数据或内部处理。

注意:开发阶段可以选「所有人可读写」,但上线前一定要收紧权限。我曾经有个项目,上线第一天就被刷了十几万条垃圾数据,就是因为权限没设对。血的教训。

3.6 小结

今天咱们把云数据库的底子打好了。你知道了:

  • 数据库就是个仓库,集合是表,文档是行。
  • 数据类型有八种,Date 要特别注意。
  • 创建集合只要几秒钟。
  • 权限设置不能马虎。

下一节课,咱们就开始真正写代码了——用云函数操作数据库,增删改查走一遍。到时候你会发现,原来操作数据这么爽。

先消化今天的内容,有问题随时翻回来看看。咱们下节课见。