Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Tc.小浩
unidocs-zh
提交
f7dcaeb7
U
unidocs-zh
项目概览
Tc.小浩
/
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,发现更多精彩内容 >>
提交
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.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录