Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
程序yang
unidocs-zh
提交
f3cf719b
U
unidocs-zh
项目概览
程序yang
/
unidocs-zh
与 Fork 源项目一致
Fork自
DCloud / unidocs-zh
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
U
unidocs-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
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.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录