# 连表返回单条记录
- 主表: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
38
39
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
38
39