You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NestJS中TypeORM不使用QueryBuilder实现AND条件查询的方法

TypeORM 中 findOne 方法的 where 参数传入数组时,默认执行 OR 逻辑,数组内的多个条件满足任意一个即可命中结果。
不需要使用 QueryBuilder 等高阶语法,直接将需要并列匹配的字段规则封装为单个对象传入 where 参数即可实现 AND 查询,对象内的所有键值对会自动按 AND 逻辑拼接查询条件。

正确代码示例:

async getByUniqueConstraints(user: User){
    const {email, phoneNumber} = user
    const foundUser = await this.userRepository.findOne({
        where: {
            email: email,
            phoneNumber: phoneNumber
        }
    });
    return foundUser;
}

如果你的变量名和数据库表字段名完全一致,可以使用简写语法:

async getByUniqueConstraints(user: User){
    const {email, phoneNumber} = user
    const foundUser = await this.userRepository.findOne({
        where: { email, phoneNumber }
    });
    return foundUser;
}

如果后续需要新增更多 AND 匹配条件,直接在 where 对应的对象内新增对应字段的匹配规则即可。

内容的提问来源于stack exchange,提问作者Kristoffer Tølbøll

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 05:36:02