【uniCloud】云数据库基础使用

570 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第3天,点击查看活动详情

之前文章中介绍了使用uniCloud创建demo项目,本篇介绍一下uniCloud中如何操作云数据库进行增删改查操作。

uniCloud提供了一个 JSON 格式的文档型数据库,它跟传统的关系型数据库MySQL不一样,是nosql非关系型数据库。

  • 一个uniCloud服务空间,有且只有一个数据库;
  • 一个数据库可以有多个表;
  • 一个表可以有多个记录;
  • 一个记录可以有多个字段。

创建数据库表

image.png

进入已经创建好的服务空间,选择左侧菜单中的云数据库,点击+号,新建数据表。这里uniCloud也提供了一些常用系统模块的模板表,如果跟业务相似可以直接使用uniCloud提供的表。

image.png

uniCloud数据库操作可以使用官方推荐的JQL语法,也可以使用传统方式操作数据库。本篇要介绍的是使用传统方式进行数据库操作。

创建表结构后,需要在表结构里面修改permission的操作权限,这里可以将read、create、update、delete操作权限修改为true,否则在接下来进行增删改查操作时将会不成功。

查询

db.collection('xxx')表示获取对该表的引用,这里可以使用limit来进行分页查询。

const db = uniCloud.database()
exports.main = async (event, context) => {
    //event为客户端上传的参数
    const list = await db.collection('sys_record').limit(5).orderBy('_id', 'desc').get();
    //返回数据给客户端
    return list
};

增加

使用add新增一条记录。

const db = uniCloud.database()
exports.main = async (event, context) => {
    //event为客户端上传的参数
    const startTime = event.startTime
    const endTime = event.endTime
    const timeLength = event.count
    const list = await db.collection('sys_record').add({start_time: startTime, end_time: endTime, time_length: timeLength})
    //返回数据给客户端
    return list
};

修改

使用update方法,对传入的参数进行更新操作。

const db = uniCloud.database()
exports.main = async (event, context) => {
    //event为客户端上传的参数
    const id = event.id
    const startTime = event.startTime
    const endTime = event.endTime
    const timeLength = event.count
    const list = await db.collection('sys_record').doc(id).update({start_time: startTime, end_time: endTime, time_length: timeLength})
    //返回数据给客户端
    return list
};

删除

使用remove方法进行删除。

const db = uniCloud.database();
exports.main = async (event, context) => {
    const id = event.id
    let res = await db.collection('sys_record').doc(id).remove()
    //返回数据给客户端
    return res
};

总结

我们使用传统方法对数据库进行查询操作,在一些简单的增删改查操作的时候理解起来比较容易,不过在业务场景比较复杂时,还是更推荐使用JQL语法来进行数据库操作。