«
nestjs 数据库常用查询

时间:2023-2-24    作者:熊永生    分类: nest


nestjs 数据库常用查询

多条件模糊查询

let where = {}
where['user_id'] = 1
return await this.apiLoginService.getByList({
where:[
{ id:Like(`%1%`),...where},
{ create_time:Like(`%1%`),...where},
]
})

关联查询一对一查询 和一对多查询

async getByList() {
return await this.db.createQueryBuilder('a')
.leftJoinAndMapOne("a.user", HomeUser, "user", "a.user_id = user.id")
.leftJoinAndMapMany("a.order", HomeOrder, "order", "a.user_id = order.user_id")
.getMany()
}

order 排序

return await this.apiLoginService.getByList({
order:{
"a.create_time":'DESC',
"a.id":'DESC',
}
})
async getByList({ order = {} }) {
return await this.db.createQueryBuilder('a')
.orderBy(order)
.getMany()
}

综合查询


// 测试
@Post('test')
async test(@Body() param){
let where = {}
where['user_id'] = 1
let res = await this.apiLoginService.getByList({
order:{
"a.create_time":'DESC',
"a.id":'DESC',
},
where:[
{ id:Like(`%1%`),...where},
{ create_time:Like(`%1%`),...where},
]
})
if(res?.length){
return Utils.msg(res,'获取成功',1)
}else{
return Utils.msg('','获取失败',0)
}
}