Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DCloud
unidocs-zh
提交
f3cf719b
unidocs-zh
项目概览
DCloud
/
unidocs-zh
通知
3172
Star
105
Fork
804
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
93
列表
看板
标记
里程碑
合并请求
67
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
unidocs-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
93
Issue
93
列表
看板
标记
里程碑
合并请求
67
合并请求
67
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
f3cf719b
编写于
11月 30, 2021
作者:
雪洛
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
docs: cloud-jql
上级
a0978d5a
变更
3
展开全部
隐藏空白更改
内联
并排
Showing
3 changed file
with
3587 addition
and
7 deletion
+3587
-7
docs/uniCloud/clientdb.md
docs/uniCloud/clientdb.md
+2
-7
docs/uniCloud/jql-cloud.md
docs/uniCloud/jql-cloud.md
+70
-0
docs/uniCloud/jql.md
docs/uniCloud/jql.md
+3515
-0
未找到文件。
docs/uniCloud/clientdb.md
浏览文件 @
f3cf719b
...
...
@@ -276,11 +276,6 @@ sql写法,对js工程师而言有学习成本,而且无法处理非关系型
.
end
()
```
3.
列表分页写法复杂
需要使用skip,处理offset
这些问题竖起一堵墙,让后端开发难度加大,成为一个“专业领域”。但其实这堵墙是完全可以推倒的。
...
...
@@ -319,7 +314,7 @@ sql写法,对js工程师而言有学习成本,而且无法处理非关系型
**jql条件语句内变量**
以下变量同
[
前端环境变量
](
uniCloud/
database
.md?id=variable
)
以下变量同
[
前端环境变量
](
uniCloud/
clientdb
.md?id=variable
)
|参数名 |说明 |
|:-: |:-: |
...
...
@@ -440,7 +435,7 @@ const order = db.collection('order').where('_id=="1"').getTemp() // 注意结尾
const
res
=
await
db
.
collection
(
order
,
'
book
'
).
get
()
// 将获取的order表的临时表和book表进行联表查询
```
上面两种写法最终结果一致,但是第二种写法性能更好。第一种写法会先将所有数据进行关联,如果数据量很大这一步会消耗
浪费
很多时间。详细示例见下方说明
上面两种写法最终结果一致,但是第二种写法性能更好。第一种写法会先将所有数据进行关联,如果数据量很大这一步会消耗很多时间。详细示例见下方说明
**关联查询后的虚拟表数据结构如下:**
...
...
docs/uniCloud/jql-cloud.md
0 → 100644
浏览文件 @
f3cf719b
## 云函数内使用JQL
> 新增于HBuilderX 3.3.1版本
HBuilderX 3.3.1之前JQL只能在clientDB及JQL数据库管理里面使用,此次更新为云函数带来了JQL语法,云函数内也可以享受便捷的数据库操作语句编写。
关于JQL语法及其他注意事项请参考此文档:
[
JQL数据库操作
](
uniCloud/jql.md
)
## 为云函数启用jql扩展能力@use-in-function
需要开发者手动在云函数的package.json内添加云函数的扩展能力。(如果云函数目录下没有package.json,可以通过在云函数目录下执行
`npm init -y`
来生成)
下面是一个开启了jql扩展能力的云函数的package.json示例,
**注意不可有注释,以下文件内容中的注释仅为说明,如果拷贝此文件,切记去除注释**
```
js
{
"
name
"
:
"
jql-test
"
,
"
version
"
:
"
1.0.0
"
,
"
description
"
:
""
,
"
main
"
:
"
index.js
"
,
"
extensions
"
:
{
"
uni-cloud-jql
"
:
{}
// 配置为此云函数开启jql扩展能力,值为空对象留作后续追加参数,暂无内容
},
"
author
"
:
""
}
```
```
js
// 简单的使用示例
'
use strict
'
;
exports
.
main
=
async
(
event
,
context
)
=>
{
const
dbJQL
=
uniCloud
.
databaseForJQL
({
// 获取JQL database引用,此处需要传入云函数的event和context,必传
event
,
context
})
const
bookQueryRes
=
dbJQL
.
collection
(
'
book
'
).
where
(
"
name=='三国演义'
"
).
get
()
// 直接执行数据库操作
return
{
bookQueryRes
}
};
```
上述示例中jql扩展将会使用event内带有的uniIdToken对应的用户作为执行数据库操作的用户,如需指定执行当前数据库操作的用户请使用
`setUser`
方法
例:
```
js
'
use strict
'
;
exports
.
main
=
async
(
event
,
context
)
=>
{
const
dbJQL
=
uniCloud
.
databaseForJQL
({
// 获取JQL database引用,此处需要传入云函数的event和context,必传
event
,
context
})
dbJQL
.
setUser
({
// 指定后续执行操作的用户信息
uid
:
'
user-id
'
,
// 建议此处使用真实uid
role
:
[
'
admin
'
],
// 指定当前执行用户的角色为admin
permission
:
[]
})
const
bookQueryRes
=
dbJQL
.
collection
(
'
book
'
).
where
(
"
name=='三国演义'
"
).
get
()
// 直接执行数据库操作
return
{
bookQueryRes
}
};
```
**注意**
-
启用了JQL扩展的云函数暂不可本地调试,后续会提供支持
-
JQL扩展依赖
`uni-id`
公共模块
-
由于此扩展会将
`schema`
、
`action`
、
`validateFunction`
带到模块内,如果你的上述文件较多会大幅增大云函数体积,因此启用此扩展的云函数
**冷启动**
时间会稍长,建议不要为太多云函数启用此扩展
\ No newline at end of file
docs/uniCloud/jql.md
0 → 100644
浏览文件 @
f3cf719b
此差异已折叠。
点击以展开。
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录