# 连表返回单条记录
- 主表:uni-id-users (用户表)
- 副表:order (用户订单表)
- 副表:vip (会员卡表)
- 以下代码作用是:用一条聚合查询语句,查询前用户 ID 为 001 的用户信息,并查询他们的最新 10 个订单记录表,再查询他们的 VIP 信息
通过 getOne:true 设置只返回第一条数据,且是对象形式返回
通过 getMain:true 直接返回数据库查询到的数据(不带 code,rows 等参数)
let info = await vk.baseDao.selects({
dbName: 'uni-id-users',
getOne: true, // 只返回第一条数据
getMain: true, // 直接返回数据库查询到的数据(不带code,rows等参数)
// 主表where条件
whereJson: {
_id: '001',
},
// 主表字段显示规则
fieldJson: {
token: false,
password: false,
},
// 副表列表
foreignDB: [
{
dbName: 'order',
localKey: '_id',
foreignKey: 'user_id',
as: 'orderList',
limit: 10,
// 副表where条件
whereJson: {},
// 副表字段显示规则
fieldJson: {},
// 副表排序规则
sortArr: [{ name: 'time', type: 'desc' }],
},
{
dbName: 'vip',
localKey: '_id',
foreignKey: 'user_id',
as: 'vipInfo',
limit: 1, // 当limit = 1时,以对象形式返回,否则以数组形式返回
},
],
});
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37