微信小程序云开发:数据库操作


数据库官方文档

微信云开发数据库

不同于一般的关系型数据库(例如: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
	}
})

如果数据中包含了原来记录中不存在的字段,在这个更新的记录中会新增这个字段(但是似乎无法对这个字段进行后续的更新?可以自己试一下)

  • 6
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值