JQL
JQL
,全称 javascript query language,是一种js方式操作数据库的规范
JQL
大幅降低了js工程师操作数据库的难度,比SQL和传统MongoDB API更清晰、易掌握JQL
支持强大的DB Schema,内置数据规则和权限。DB Schema 支持uni-id,可直接使用其角色和权限。无需再开发各种数据合法性校验和鉴权代码。JQL
利用json数据库的嵌套特点,极大的简化了联表查询和树查询的复杂度,并支持更加灵活的虚拟表。
js
// 查询表
db.collection('tableImages').get();
// 查询表
db.collection('tableImages').get();
新增数据
获取到db的表对象后,通过add方法新增数据记录
云函数传统方式和jql语法操作数据库的区别
- 主要查询方式上的区别,传统方式使用db.command,而jql使用js语法更易读更简洁
js
const dbCmd = db.command
const myOpenID = "xxx"
let res = await db.collection('articles').where({
quarter: dbCmd.eq('2020 Q2')
}).get()
const dbCmd = db.command
const myOpenID = "xxx"
let res = await db.collection('articles').where({
quarter: dbCmd.eq('2020 Q2')
}).get()
HBuilderX的JQL数据库管理器
为方便开发者调试查询语句,HBuilderX 3.1.5
起内置了JQL查询调试器。用法如下
- 在
uniCloud/database
目录右键选择新建JQL数据库管理
(HBuilderX创建项目时勾选uniCloud会自带一个jql文件,直接使用自带的jql文件也可以) - 在jql文件内写上自己的语句
- 使用工具栏上的运行按钮运行(快捷键:Ctrl+R 或 F5)即可
注意
- 编写clientDB的js API(也支持常规js语法,比如var),可以对云数据库进行增删改查操作。不支持uniCloud-db组件写法
- 可以全部运行,也可以选中部分代码运行。点击工具栏上的运行按钮或者按下【F5】键运行代码
- 如果文档中存在多条JQL语句,只有最后一条语句生效
- 如果混写了普通js,最后一条语句需是数据库操作语句
- 此处代码运行不受DB Schema的权限控制,移植代码到实际业务中注意在schema中配好permission
- 不支持clientDB的action
- 数据库查询有最大返回条数限制,详见:[limit(opens new window)](