# 连表返回单条记录

  • 主表: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