Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DCloud
unidocs-zh
提交
f7dcaeb7
unidocs-zh
项目概览
DCloud
/
unidocs-zh
通知
3216
Star
106
Fork
815
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
94
列表
看板
标记
里程碑
合并请求
70
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
unidocs-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
94
Issue
94
列表
看板
标记
里程碑
合并请求
70
合并请求
70
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
f7dcaeb7
编写于
8月 02, 2022
作者:
taohebin@dcloud.io
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'master' of gitee.com:dcloud/unidocs-zh
上级
a5d4e1c6
3ad246bf
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
44 addition
and
14 deletion
+44
-14
docs/uniCloud/unicloud-db.md
docs/uniCloud/unicloud-db.md
+44
-14
未找到文件。
docs/uniCloud/unicloud-db.md
浏览文件 @
f7dcaeb7
...
...
@@ -682,25 +682,55 @@ H5平台,开发模式下浏览器控制台输入 `unidev.clientDB.data`,可
## 联表查询
联表查询有以下两种写法,对于数据量稍大的表推荐使用多个临时表组成的数组作为collection,可以在主表的getTemp内先进行过滤减小联表时的性能消耗。
更多关于联表查询的内容请参考:
[
JQL联表查询
](
https://uniapp.dcloud.net.cn/uniCloud/jql?id=lookup
)
**多个collection字符串拼接**
用于联表查询,注意主表副表之间需要在schema内以foreignKey关联(副表支持多个)。如下示例以book作为主表,关联author表进行查询,在book表的schema内设置author_id字段指向author表
```
html
<unicloud-db
v-slot:default=
"{data, loading, error, options}"
collection=
"book,author"
>
<view
v-if=
"error"
>
{{error.message}}
</view>
<view
v-else-if=
"loading"
>
正在加载...
</view>
<view
v-else
>
{{data}}
</view>
</unicloud-db>
```
**多个临时表组成的数组**
同样用于联表查询,但是与直接拼接多个字符串的方式不同,可以先对主表进行处理再关联。和直接使用多个表名字符串拼接相比,在主表数据量大的情况下性能有明显提升
```
html
// 注意 `collection` 属性需要传入所有用到的表名,用逗号分隔,主表需要放在第一位
// where 属性 查询order表内书名为“三国演义”的订单
// field 属性 查询book表返回book表内的title、book表内的author、order表内的quantity
<template>
<view>
<unicloud-db
v-slot:default=
"{data, loading, error, options}"
collection=
"order,book"
where=
"book_id.title == '三国演义'"
field=
"book_id{title,author},quantity"
>
<view>
<view
v-for=
"(item, index) in data"
:key=
"index"
class=
"list-item"
>
{{ item.name}}
</view>
</view>
</unicloud-db>
</view>
<unicloud-db
v-slot:default=
"{data, loading, error, options}"
:collection=
"colList"
>
<view
v-if=
"error"
>
{{error.message}}
</view>
<view
v-else-if=
"loading"
>
正在加载...
</view>
<view
v-else
>
{{data}}
</view>
</unicloud-db>
</template>
<script>
const
db
=
uniCloud
.
database
()
export
default
{
data
()
{
return
{
colList
:
[
db
.
collection
(
'
book
'
).
where
(
'
name == "水浒传"
'
).
getTemp
(),
db
.
collection
(
'
author
'
).
getTemp
()
]
}
},
onReady
()
{},
methods
:
{}
}
</script>
```
联表查询详情参考
[
https://uniapp.dcloud.net.cn/uniCloud/jql?id=lookup
](
https://uniapp.dcloud.net.cn/uniCloud/jql?id=lookup
)
## 列表分页@page
unicloud-db组件简化了列表分页的写法,只需简单的配置每页需要多少数据(默认是20条),不管是数据库的分页查询还是前端的列表分页展示,都自动封装了。
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录