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

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

浏览量:660 时间: 来源:Ice星空

文章目录

    • 微信云开发数据库
      • 集合,记录和字段 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}})

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

微信小程序

版权声明

即速应用倡导尊重与保护知识产权。如发现本站文章存在版权问题,烦请提供版权疑问、身份证明、版权证明、联系方式等发邮件至197452366@qq.com ,我们将及时处理。本站文章仅作分享交流用途,作者观点不等同于即速应用观点。用户与作者的任何交易与本站无关,请知悉。

产品经理

手机 : 13312967497

擅长 : 小程序流量变现

扫码领取礼包

热门模板

  • 头条
  • 搜狐
  • 微博
  • 百家
  • 一点资讯
  • 知乎