文章目录
- 微信云开发数据库
- 集合,记录和字段 collection,record/doc & field
- 数据库操作
- 创建记录
- 查询记录
- 删除记录
- 更新记录
数据库官方文档
微信云开发数据库
不同于一般的关系型数据库(例如:MySQL)以及对象数据库(例如:NoSQL),微信云开发为我们提供的是一个JSON数据库,通过集合(collection)存储一条一条的记录(record/doc),记录中包含若干字段(field)。
集合,记录和字段 collection,record/doc & field
你可以在云开发控制台 -> 数据库中点击集合名称旁边的加号,输入集合名称就可以非常简单的创建一个集合了:
选中创建的集合,就可以往该集合中添加纪录了!并且,正如我们前面所强调的——这是一个JSON数据库! 所以,你并不需要保证每个记录包含一模一样的字段(当然一般情况下不会这样),并且你还可以在记录中包含一个Object类型的字段,并且在这个字段中依然可以包含Object类型(这是非常常见的JSON数据的结构)。
在一个记录中,微信云开发为我们提供了几种字段数据类型:
- string:字符串类型
- number:数字类型,可以是整数,也可以是浮点数,任意大小(?)
- Object:对象类型,里面可以包含字段(任意类型)
- Array:数组类型,并且数组元素可以是任意类型
- Bool:布尔值
- Geopoint:地理位置点类型,用于表示地理位置点,用经纬度唯一标记一个点,这是一个特殊的数据存储类型。注意,如果需要对类型为地理位置的字段进行查找,一定要建立地理位置索引
- Date:时间类型,精确到毫秒,在官方文档中有进一步的说明
- Null:相当于一个占位符,表示一个值为空的字段,插入这样的字段时我们只需要给出字段名即可
数据类型 / 官方文档
数据库操作
在小程序端进行数据库操作时,我们需要先获得数据库的引用:
const db = wx.cloud.database()在使用wx.cloud之前,必须先对云进行初始化,这个操作只需要完成一次即可,可以在进行登陆操作的云函数 login 中进行初始化,在新建项目中官方给出的例子中提供了 login 云函数的示例。然后我们便可以利用这个数据库的引用进行一系列的数据库操作了,并且这些操作都支持回调风格和Promise风格调用
创建记录
使用add添加记录:
const db = wx.cloud.database()db.collection('collection_name').add({data: {}, //一个对象,可以是已经定义好的变量// 操作成功的回调函数success: res => {// do-sth},// 失败回调fail: err => {// do-sth}})查询记录
可以使用where查询多个记录:
const db = wx.cloud.database()db.collection('collection_name').where({'field_name': field_value // 字段名和字段值都可以是一个变量}).get({// 成功回调success: res => {// do-sth},fail: err => {// do-sth}})也可以使用doc直接通过记录docId获取一个记录的引用:
db.collection('collection_name').doc(docId).get()删除记录
通过doc获取记录的引用,调用remove进行记录删除:
db.collection('collection_name').doc(docId).remove({success: res => {// do-sth}, fail: err => { // do-sth }})更新记录
通过doc获取记录的引用,调用update进行记录更新:
db.collection('collection_name').doc(docId).update({data: {}, // 更新相应字段内容success: res => {// do-sth},fail: err => {// do-sth}})或者是使用set直接设置新的内容:
db.collection('collection_name').doc(docId).set({data: {}, // 替换记录内容success: res => {// do-sth},fail: err => {// do-sth}})如果数据中包含了原来记录中不存在的字段,在这个更新的记录中会新增这个字段(但是似乎无法对这个字段进行后续的更新?可以自己试一下)
微信小程序













