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