Skip to content
索引

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查询调试器。用法如下

  1. uniCloud/database目录右键选择新建JQL数据库管理(HBuilderX创建项目时勾选uniCloud会自带一个jql文件,直接使用自带的jql文件也可以)
  2. 在jql文件内写上自己的语句
  3. 使用工具栏上的运行按钮运行(快捷键:Ctrl+R 或 F5)即可

注意

  • 编写clientDB的js API(也支持常规js语法,比如var),可以对云数据库进行增删改查操作。不支持uniCloud-db组件写法
  • 可以全部运行,也可以选中部分代码运行。点击工具栏上的运行按钮或者按下【F5】键运行代码
  • 如果文档中存在多条JQL语句,只有最后一条语句生效
  • 如果混写了普通js,最后一条语句需是数据库操作语句
  • 此处代码运行不受DB Schema的权限控制,移植代码到实际业务中注意在schema中配好permission
  • 不支持clientDB的action
  • 数据库查询有最大返回条数限制,详见:[limit(opens new window)](

Released under the MIT License.