Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
qq_36567140
unidocs-zh
提交
c34fa064
U
unidocs-zh
项目概览
qq_36567140
/
unidocs-zh
与 Fork 源项目一致
Fork自
DCloud / unidocs-zh
通知
1
Star
0
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看板
体验新版 GitCode,发现更多精彩内容 >>
提交
c34fa064
编写于
12月 07, 2021
作者:
雪洛
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
docs: jql doc
上级
b0bd4aa8
变更
6
展开全部
隐藏空白更改
内联
并排
Showing
6 changed file
with
62 addition
and
3559 deletion
+62
-3559
docs/uniCloud/_sidebar.md
docs/uniCloud/_sidebar.md
+3
-1
docs/uniCloud/cf-functions.md
docs/uniCloud/cf-functions.md
+37
-12
docs/uniCloud/clientdb.md
docs/uniCloud/clientdb.md
+3
-3527
docs/uniCloud/jql-cloud.md
docs/uniCloud/jql-cloud.md
+4
-4
docs/uniCloud/jql-runner.md
docs/uniCloud/jql-runner.md
+1
-1
docs/uniCloud/jql.md
docs/uniCloud/jql.md
+14
-14
未找到文件。
docs/uniCloud/_sidebar.md
浏览文件 @
c34fa064
...
@@ -10,9 +10,11 @@
...
@@ -10,9 +10,11 @@
*
[
云函数操作云数据库
](
uniCloud/cf-database.md
)
*
[
云函数操作云数据库
](
uniCloud/cf-database.md
)
*
[
DB Schema表结构
](
uniCloud/schema.md
)
*
[
DB Schema表结构
](
uniCloud/schema.md
)
*
[
数据库索引
](
uniCloud/db-index.md
)
*
[
数据库索引
](
uniCloud/db-index.md
)
*
[
前端操作数据库的API
及JQL语法
](
uniCloud/clientdb.md
)
*
[
前端操作数据库的API
](
uniCloud/clientdb.md
)
*
[
unicloud-db前端组件
](
uniCloud/unicloud-db.md
)
*
[
unicloud-db前端组件
](
uniCloud/unicloud-db.md
)
*
[
JQL数据库管理
](
uniCloud/jql-runner.md
)
*
[
JQL数据库管理
](
uniCloud/jql-runner.md
)
<!-- * [云函数内使用JQL语法](uniCloud/jql-cloud.md) -->
*
[
JQL语法
](
uniCloud/jql.md
)
*
[
openDB
](
https://gitee.com/dcloud/opendb
)
*
[
openDB
](
https://gitee.com/dcloud/opendb
)
*
[
性能优化
](
uniCloud/db-performance.md
)
*
[
性能优化
](
uniCloud/db-performance.md
)
*
云函数
*
云函数
...
...
docs/uniCloud/cf-functions.md
浏览文件 @
c34fa064
...
@@ -70,7 +70,6 @@ exports.main = async (event, context) => {
...
@@ -70,7 +70,6 @@ exports.main = async (event, context) => {
|uniCloud.logger |云函数中打印日志到uniCloud日志记录系统(非HBuilderX控制台)
[
详情
](
uniCloud/cf-logger
)
|
|uniCloud.logger |云函数中打印日志到uniCloud日志记录系统(非HBuilderX控制台)
[
详情
](
uniCloud/cf-logger
)
|
|uniCloud.sendSms() |发送短信
[
详见
](
uniCloud/send-sms.md
)
|
|uniCloud.sendSms() |发送短信
[
详见
](
uniCloud/send-sms.md
)
|
## 特殊属性
## 特殊属性
**注意:下面所有的“客户端”均是相对于云函数而言,如果你使用自己的服务器调用云函数此时客户端是指你的服务器**
**注意:下面所有的“客户端”均是相对于云函数而言,如果你使用自己的服务器调用云函数此时客户端是指你的服务器**
...
@@ -258,6 +257,29 @@ Tips:
...
@@ -258,6 +257,29 @@ Tips:
云函数支持公共模块。多个云函数的共享部分,可以抽离为公共模块,然后被多个云函数引用。
[
详见
](
uniCloud/cf-common
)
云函数支持公共模块。多个云函数的共享部分,可以抽离为公共模块,然后被多个云函数引用。
[
详见
](
uniCloud/cf-common
)
## 扩展库
uniCloud内置了一些扩展库,但是为了减小云函数体积,并不会对所有云函数默认开启。如需使用需要在云函数的package.json内的extensions字段下配置。
**目前支持的扩展库有以下几个**
<!-- - 用于在云函数内使用JQL语法操作数据库的JQL扩展库[uni-cloud-jql],参考:[JQL扩展库](uniCloud/jql-cloud.md) -->
-
用于在云函数内使用redis的redis扩展库
[
uni-cloud-redis],参考:[redis扩展库
](
uniCloud/redis.md
)
以下是一个开启了Redis扩展库的云函数package.json示例,注意此文件不支持注释,下方示例中的注释仅为演示
```
js
{
"
name
"
:
"
add-article
"
,
"
version
"
:
"
1.0.0
"
,
"
description
"
:
"
新增文章
"
,
"
main
"
:
"
index.js
"
,
"
extensions
"
:
{
"
uni-cloud-redis
"
:
{}
// 配置为空对象即可,后续如有扩展参数会在此处配置
}
}
```
## 客户端调用云函数@clientcallfunction
## 客户端调用云函数@clientcallfunction
前端代码(H5前端、App、小程序),不再执行uni.request联网,而是通过
`uniCloud.callFunction`
调用云函数,
`callFunction`
定义如下:
前端代码(H5前端、App、小程序),不再执行uni.request联网,而是通过
`uniCloud.callFunction`
调用云函数,
`callFunction`
定义如下:
...
@@ -443,19 +465,22 @@ package.json是一个标准json文件,不可带注释。下面是一个package
...
@@ -443,19 +465,22 @@ package.json是一个标准json文件,不可带注释。下面是一个package
"description"
:
"新增文章"
,
"description"
:
"新增文章"
,
"main"
:
"index.js"
,
"main"
:
"index.js"
,
"dependencies"
:
{
"dependencies"
:
{
//
云函数的依赖,包括公共模块及自行安装的npm依赖
},
},
"extensions"
:
{
//
云函数使用的扩展库
},
"cloudfunction-config"
:
{
"cloudfunction-config"
:
{
"memorySize"
:
256
,
"memorySize"
:
256
,
"timeout"
:
5
,
"timeout"
:
5
,
"triggers"
:
[{
"triggers"
:
[{
"name"
:
"myTrigger"
,
"name"
:
"myTrigger"
,
"type"
:
"timer"
,
"type"
:
"timer"
,
"config"
:
"0 0 2 1 * * *"
"config"
:
"0 0 2 1 * * *"
}],
}],
"path"
:
""
,
"path"
:
""
,
"runtime"
:
"Nodejs8"
"runtime"
:
"Nodejs8"
}
}
}
}
```
```
...
...
docs/uniCloud/clientdb.md
浏览文件 @
c34fa064
此差异已折叠。
点击以展开。
docs/uniCloud/jql-cloud.md
浏览文件 @
c34fa064
...
@@ -6,11 +6,11 @@ HBuilderX 3.3.1之前JQL只能在clientDB及JQL数据库管理里面使用,此
...
@@ -6,11 +6,11 @@ HBuilderX 3.3.1之前JQL只能在clientDB及JQL数据库管理里面使用,此
关于JQL语法及其他注意事项请参考此文档:
[
JQL数据库操作
](
uniCloud/jql.md
)
关于JQL语法及其他注意事项请参考此文档:
[
JQL数据库操作
](
uniCloud/jql.md
)
## 为云函数启用jql扩展
能力
@use-in-function
## 为云函数启用jql扩展
库
@use-in-function
需要开发者手动在云函数的package.json内添加云函数的扩展
能力
。(如果云函数目录下没有package.json,可以通过在云函数目录下执行
`npm init -y`
来生成)
需要开发者手动在云函数的package.json内添加云函数的扩展
库
。(如果云函数目录下没有package.json,可以通过在云函数目录下执行
`npm init -y`
来生成)
下面是一个开启了jql扩展
能力
的云函数的package.json示例,
**注意不可有注释,以下文件内容中的注释仅为说明,如果拷贝此文件,切记去除注释**
下面是一个开启了jql扩展
库
的云函数的package.json示例,
**注意不可有注释,以下文件内容中的注释仅为说明,如果拷贝此文件,切记去除注释**
```
js
```
js
{
{
...
@@ -19,7 +19,7 @@ HBuilderX 3.3.1之前JQL只能在clientDB及JQL数据库管理里面使用,此
...
@@ -19,7 +19,7 @@ HBuilderX 3.3.1之前JQL只能在clientDB及JQL数据库管理里面使用,此
"
description
"
:
""
,
"
description
"
:
""
,
"
main
"
:
"
index.js
"
,
"
main
"
:
"
index.js
"
,
"
extensions
"
:
{
"
extensions
"
:
{
"
uni-cloud-jql
"
:
{}
// 配置为此云函数开启jql扩展
能力
,值为空对象留作后续追加参数,暂无内容
"
uni-cloud-jql
"
:
{}
// 配置为此云函数开启jql扩展
库
,值为空对象留作后续追加参数,暂无内容
},
},
"
author
"
:
""
"
author
"
:
""
}
}
...
...
docs/uniCloud/jql-runner.md
浏览文件 @
c34fa064
...
@@ -17,4 +17,4 @@
...
@@ -17,4 +17,4 @@
-
此处代码运行不受DB Schema的权限控制,移植代码到实际业务中注意在schema中配好permission
-
此处代码运行不受DB Schema的权限控制,移植代码到实际业务中注意在schema中配好permission
-
不支持clientDB的action
-
不支持clientDB的action
-
数据库查询有最大返回条数限制,详见:
[
limit
](
https://uniapp.dcloud.net.cn/uniCloud/cf-database?id=limit
)
-
数据库查询有最大返回条数限制,详见:
[
limit
](
https://uniapp.dcloud.net.cn/uniCloud/cf-database?id=limit
)
-
详细JQL语法,请参考:
[
JQL
](
https://uniapp.dcloud.net.cn/uniCloud/clientdb?id=jsquery
)
-
详细JQL语法,请参考:
[
JQL
](
uniCloud/jql.md
)
\ No newline at end of file
\ No newline at end of file
docs/uniCloud/jql.md
浏览文件 @
c34fa064
...
@@ -106,11 +106,11 @@ sql写法,对js工程师而言有学习成本,而且无法处理非关系型
...
@@ -106,11 +106,11 @@ sql写法,对js工程师而言有学习成本,而且无法处理非关系型
## JQL的使用场景@scene
## JQL的使用场景@scene
你可以在以下
三
种场景使用JQL
你可以在以下
几
种场景使用JQL
-
客户端clientDB,包括js内以及unicloud-db组件内,参考:
[
clientDB
](
uniCloud/clientdb.md
)
-
客户端clientDB,包括js内以及unicloud-db组件内,参考:
[
clientDB
](
uniCloud/clientdb.md
)
-
HBuilderX JQL数据库管理器,参考:
[
JQL数据库管理器
](
uniCloud/jql-runner.md
)
-
HBuilderX JQL数据库管理器,参考:
[
JQL数据库管理器
](
uniCloud/jql-runner.md
)
-
启用了jql扩展的云函数,参考:
[
云函数内使用JQL
](
uniCloud/jql-cloud.md
)
<!-- - 启用了jql扩展的云函数,参考:[云函数内使用JQL](uniCloud/jql-cloud.md) -->
### 不同场景的区别
### 不同场景的区别
...
@@ -127,10 +127,10 @@ sql写法,对js工程师而言有学习成本,而且无法处理非关系型
...
@@ -127,10 +127,10 @@ sql写法,对js工程师而言有学习成本,而且无法处理非关系型
-
完整的权限校验,执行操作的用户不可以操作自己权限之外的数据
-
完整的权限校验,执行操作的用户不可以操作自己权限之外的数据
-
admin用户不可操作password类型的数据
-
admin用户不可操作password类型的数据
**云函数JQL:**
<!--
**云函数JQL:**
-
同clientDB,但是password类型的数据可以配置权限,默认权限是false,可以被admin用户操作。
-
同clientDB,但是password类型的数据可以配置权限,默认权限是false,可以被admin用户操作。
-
可以指定当前执行数据库操作的用户身份。
-
可以指定当前执行数据库操作的用户身份。
-->
## JQL的限制@limit
## JQL的限制@limit
...
@@ -287,7 +287,7 @@ db.collection('user').where({
...
@@ -287,7 +287,7 @@ db.collection('user').where({
如需自定义返回的err对象,可以在clientDB中挂一个
[
action云函数
](
uniCloud/database?id=action
)
,在action云函数的
`after`
内用js修改返回结果,传入
`after`
内的result不带code和message。
如需自定义返回的err对象,可以在clientDB中挂一个
[
action云函数
](
uniCloud/database?id=action
)
,在action云函数的
`after`
内用js修改返回结果,传入
`after`
内的result不带code和message。
## 查询数据
## 查询数据
@query
### 查询数组字段@querywitharr
### 查询数组字段@querywitharr
...
@@ -947,7 +947,7 @@ db.collection('article,comment')
...
@@ -947,7 +947,7 @@ db.collection('article,comment')
> 新增于`HBuilderX 3.2.6`
> 新增于`HBuilderX 3.2.6`
在此之前JQL联表查询只能直接使用虚拟表,而不能先对主表、副表过滤再生成虚拟表。由于生成虚拟表时需要
需要
整个主表和副表进行联表,在数据量大的情况下性能会很差。
在此之前JQL联表查询只能直接使用虚拟表,而不能先对主表、副表过滤再生成虚拟表。由于生成虚拟表时需要整个主表和副表进行联表,在数据量大的情况下性能会很差。
使用临时表进行联表查询,可以先对主表或者副表进行过滤,然后在处理后的临时表的基础上生成虚拟表。
使用临时表进行联表查询,可以先对主表或者副表进行过滤,然后在处理后的临时表的基础上生成虚拟表。
...
@@ -1474,7 +1474,7 @@ db.collection('order,book')
...
@@ -1474,7 +1474,7 @@ db.collection('order,book')
### 各种字段运算方法@db-operator
### 各种字段运算方法@db-operator
自
`HBuilderX 3.1.0`
起,JQL支持在云端数据库对字段进行一定的操作运算之后再返回,详细可用的方法列表请参考:
[
数据库运算方法
](
uniCloud/
clientdb
.md?id=aggregate-operator
)
自
`HBuilderX 3.1.0`
起,JQL支持在云端数据库对字段进行一定的操作运算之后再返回,详细可用的方法列表请参考:
[
数据库运算方法
](
uniCloud/
jql
.md?id=aggregate-operator
)
> 需要注意的是,为方便书写,JQL内将数据库运算方法的用法进行了简化(相对于云函数内使用数据库运算方法而言)。用法请参考上述链接
> 需要注意的是,为方便书写,JQL内将数据库运算方法的用法进行了简化(相对于云函数内使用数据库运算方法而言)。用法请参考上述链接
...
@@ -1519,7 +1519,7 @@ const res = await db.collection('class')
...
@@ -1519,7 +1519,7 @@ const res = await db.collection('class')
**注意**
**注意**
-
如果要访问数组的某一项请使用arrayElemAt操作符,形如:
`arrayElemAt(arr,1)`
-
如果要访问数组的某一项请使用arrayElemAt操作符,形如:
`arrayElemAt(arr,1)`
-
在进行权限校验时,会
计算
field内访问的所有字段计算权限。上面的例子中会使用表的read权限和grade、class字段的权限,来进行权限校验。
-
在进行权限校验时,会
以
field内访问的所有字段计算权限。上面的例子中会使用表的read权限和grade、class字段的权限,来进行权限校验。
### 排序orderBy@order-by
### 排序orderBy@order-by
...
@@ -2643,7 +2643,7 @@ db.collection("user")
...
@@ -2643,7 +2643,7 @@ db.collection("user")
指定要删除的记录有2种方式:
指定要删除的记录有2种方式:
###
# 方式1
通过指定文档ID删除
### 通过指定文档ID删除
collection.doc(_id).remove()
collection.doc(_id).remove()
...
@@ -2653,7 +2653,7 @@ const db = uniCloud.database();
...
@@ -2653,7 +2653,7 @@ const db = uniCloud.database();
await
db
.
collection
(
"
table1
"
).
doc
(
"
5f79fdb337d16d0001899566
"
).
remove
()
await
db
.
collection
(
"
table1
"
).
doc
(
"
5f79fdb337d16d0001899566
"
).
remove
()
```
```
###
# 方式2
条件查找文档后删除
### 条件查找文档后删除
collection.where().remove()
collection.where().remove()
...
@@ -2681,7 +2681,7 @@ await db.collection("table1").where({
...
@@ -2681,7 +2681,7 @@ await db.collection("table1").where({
}).
remove
()
}).
remove
()
```
```
#### 回调的res响应参数
**响应结果**
| 字段 | 类型 | 必填 | 说明 |
| 字段 | 类型 | 必填 | 说明 |
| --------- | ------- | ---- | ------------------------ |
| --------- | ------- | ---- | ------------------------ |
...
@@ -2794,7 +2794,7 @@ let res = await collection.where({_id:'doc-id'})
...
@@ -2794,7 +2794,7 @@ let res = await collection.where({_id:'doc-id'})
}
}
```
```
###
#
批量更新文档
### 批量更新文档
```
js
```
js
const
db
=
uniCloud
.
database
();
const
db
=
uniCloud
.
database
();
...
@@ -2804,11 +2804,11 @@ let res = await collection.where("name=='hey'").update({
...
@@ -2804,11 +2804,11 @@ let res = await collection.where("name=='hey'").update({
})
})
```
```
###
#
更新数组内指定下标的元素
### 更新数组内指定下标的元素
JQL暂不支持此用法
JQL暂不支持此用法
###
#
更新数组内匹配条件的元素
### 更新数组内匹配条件的元素
JQL暂不支持此用法
JQL暂不支持此用法
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录