利用微信小程序云开发提供的数据库,可以对进行微信小程序的一些基本的数据管理,本片文章将从最基本的使用操作入手,介绍如何用云开发数据库API进行数据库的增删改查。
创建集合
- 如果你初次使用数据库,首先要创建一个数据库collection,才能进行数据的管理和调用。创建集合方法如下:打开微信开发者工具,点击云开发,在云开发控制台中点击数据库,在集合名称右侧的加号进行集合创建。
- 在实际使用中,具体要创建多少个数据库集合,由微信小程序具体使用所决定。
- 在创建好后,需要对集合的权限进行设置。在当前页面点击权限设置。
- 权限共有四种,默认权限为仅创建者可读写,不同的权限会影响数据库集合内数据能否被对应用户所调用。在四种权限中,没有提供所有用户可以进行读写的权限,不过可以通过微信云函数调用数据库API实现,在文章最后的注意事项中会有提到。
增添记录
collection.add函数,为数据库对应集合写入一条新的记录。
- 在添加数据时,需要提供对应的集合名称,在文章之后所有代码中,集合名称以name代替。在使用时,替换为自己创建时命名的集合名称即可。
// collection.add函数
wx.cloud.database().collection('name').add({
// data 字段表示需新增的 JSON 数据
data: {
description: "wechat cloud database",
tag: 1,
},
success: res => {
console.log("success!")
}
})
- 每条记录都会有一个id字段和对应添加人的openid。如果在添加时没有自己添加记录的id,系统会为新添加的记录自动生成唯一的id。
查找记录
collection.get函数,查找对应集合中符合条件的记录。可以通过where()确定符合的条件,或通过doc()匹配对应记录的id。
// collection.get函数
wx.cloud.database().collection('name').where({
// where内容代表想要查找的字段和对应的值
tag: 1,
}).get({
success: res => {
// 成功查找后,将符合条件的记录console出来
console.log(res)
}
})
- 在查找匹配内容时,可以通过正则表达式或其他函数对字段进行匹配,这里将不做过多介绍。
- 如果是在.js文件中直接调用数据库API时,不建议将用户openid作为where的查找字段,会与集合的权限冲突,当权限为 所有用户可读,创建者可读写 时,用户并不能通过openid字段读取到其他用户的记录。
- 如果需要通过openid查找其他用户记录,可以通过云函数实现,在文章最后注意事项中会有介绍。
修改记录
- collection.update函数,修改或更新已经存在的记录。在.js文件中直接调用数据库API时,只能通过doc()匹配对应记录id进行修改。
// collection.update函数
// 输入对应集合和记录的id,以修改记录
wx.cloud.database().collection('name').doc('id').update({
// 要修改的内容
data: {
tag: 2,
},
success: res => {
console.log('success!')
}
})
- 通过where()查找对应匹配字段修改记录,可以通过云函数调用数据库进行实现。
删除记录
- collection.remove函数,删除已存在的记录。在.js文件中直接调用数据库API时,只能通过doc()匹配对应记录id进行修改。
// collection.remove函数
// 输入对应集合和记录的id,以删除记录
wx.cloud.database().collection('name').doc('id').remove({
success: res => {
console.log('success!')
}
})
- 通过where()查找对应匹配字段删除记录,可以通过云函数调用数据库进行实现。
注意事项
- 在大部分的数据库函数使用时,会在.js文档的最开头进行如下声明
在大部分教程和开发者文档中,是通过db.collection()这类的简写,直接对数据库函数进行调用的。const db = wx.cloud.database()
- 在.js文件中直接调用数据库API,相当于只拥有当前某个用户的权限。如果想要实现某一用户对其他用户创建数据进行修改(即获得操作数据库的管理员权限),请通过云函数调用数据库API进行数据库增删改查,具体的实现方法会在我的另一篇文章中介绍(尽请期待)
- 关于数据库的其他操作还有很多,除了微信开发者文档可以进行资料查阅,这里还推荐W3Cschool的微信小程序开发文档进行参考,可以在入门微信云开发时多查阅这两个文档,可以得到快速的能力提升。