首页 > 解决方案 > 使用 NestJs Sequelize 的子查询

问题描述

我有两个模型UserBook. Book包含数据库中名为 的字段borrower_id,它是 的外键User

在我的UserRepository中,我想从我的数据库中获取所有有User资格借用Book.

符合条件User的是借书User少于3册。

等效的 SQL 查询将是:select * from users where (select count(*) from book where borrower_id = 444) < 3

这是我的用户存储库:

@Injectable()
export class UserRepository {

    public async getAll(): Promise<User[]> {
        return User.findAll({include: Address});
    }

    public async getEligible(): Promise<User[]> {
        return null; // The code to replace
    }
}

还有我的书模型:

@Table({tableName: 'BOOK'})
export class Book extends BaseModel<Book> {
    @Column({field: 'TITLE'})
    title: string

    @Column({field: 'DESCRIPTION'})
    description: string

    @ForeignKey(() => User)
    @Column({field: 'BORROWER_ID'})
    borrowerId: number
}

我不知道如何将我的查询翻译成这种形式。我需要Book.findAll()用一些参数调用我的之前吗?或者有没有办法做到这一点User

谢谢

标签: typescriptsequelize.jsnestjs

解决方案


推荐阅读