Nestjs 如何在TypeForm中限制和跳过相关列

Nestjs 如何在TypeForm中限制和跳过相关列,nestjs,typeorm,Nestjs,Typeorm,我试图在使用query builder查找时限制相关数据,但我忽略了这个概念 这是我获取员工订单的代码 import { getRepository, Repository } from "typeorm"; public async findEmployeeQuery(id : number) { try { let query = await getRepository(Employees) .cr

我试图在使用query builder查找时限制相关数据,但我忽略了这个概念

这是我获取员工订单的代码

import { getRepository, Repository } from "typeorm";

    public async findEmployeeQuery(id : number) {
        try {
            let query = await getRepository(Employees)
            .createQueryBuilder('employee')
            .where('employee.id = :id' , {id})
            .leftJoinAndSelect('employee.customers' , 'customers')
            .getOne()
            const user = query
            return user
        } catch (error) {
            throw error
        }

    }
现在我想限制每个请求的客户数量,我该怎么做


我尝试了“限制”和“跳过”选项,但只与员工一起使用,而不与关联数据一起使用

您必须进行另一个查询以限制客户:

import { getRepository, Repository } from "typeorm";

public async findEmployeeQuery(id : number) {
    try {
        let user = await getRepository(Employees)
        .createQueryBuilder('employee')
        .where('employee.id = :id' , {id});
        .getOne()

        user.customers =  await getRepository(Customers)
        .createQueryBuilder('customer')
        .where('customer.employee= :id' , {user.id});
         .limit(10) // here you set limitation you want 
        .getMany()

        return user;
    } catch (error) {
        throw error
    }

}

从“typeorm”导入{getRepository,Repository}


首先在SQL中尝试这样做,以限制使用子查询所需的关系数。但是这个功能真的有必要吗?因为这在很大程度上会对您的绩效产生相当大的影响。您最好从customers表而不是Employees表进行查询。我为客户做了这项工作,效果很好谢谢谢谢我从customers侧做了这项工作,效果很好请记住此方法,以防您有多个客户
leftjoins
,它将帮助您^^好的,我将使用它很抱歉,但它不起作用,因为它限制了员工,我想限制由该员工创建的客户,无论如何,感谢您的帮助
public async findEmployeeQuery(id : number) {
    try {
        let query = await getRepository(Employees)
        .createQueryBuilder('employee')
        .where('employee.id = :id' , {id})
        .leftJoinAndSelect('employee.customers' , 'customers')
        .take(4) //lIMITS its to 4
        .skip(5) //offset 5 entitities.
        .getOne()
        const user = query
        return user
    } catch (error) {
        throw error
    }

}