📅  最后修改于: 2023-12-03 15:36:34.714000             🧑  作者: Mango
在数据库操作中,经常需要对多列进行排序以获取需要的数据,这时候就需要使用 TypeORM 来操作数据库。
npm install typeorm
首先需要创建一个 Connection
对象来连接数据库,并且定义实体对象。
import { Entity, Column, PrimaryGeneratedColumn } from 'typeorm';
@Entity()
export class User {
@PrimaryGeneratedColumn()
id: number;
@Column()
name: string;
@Column()
age: number;
}
然后在 app.module.ts
中引入 typeorm
并进行连接配置。
import { Module } from '@nestjs/common';
import { TypeOrmModule } from '@nestjs/typeorm';
import { User } from './user.entity';
@Module({
imports: [TypeOrmModule.forRoot({
type: 'mysql',
host: 'localhost',
port: 3306,
username: 'root',
password: '123456',
database: 'test',
entities: [User],
synchronize: true,
})],
})
export class AppModule {}
使用 typeorm
中的 getRepository
方法获取 User
实体对象的 Repository,并使用 find
方法查找数据并进行多列排序。
import { Injectable } from '@nestjs/common';
import { InjectRepository } from '@nestjs/typeorm';
import { Repository } from 'typeorm';
import { User } from './user.entity';
@Injectable()
export class UserService {
constructor(
@InjectRepository(User)
private userRepository: Repository<User>,
) {}
async findAll(): Promise<User[]> {
return this.userRepository.find({
order: {
age: 'DESC',
name: 'ASC',
},
});
}
}
在 order
参数中使用对象来指定需要进行排序的列名和排序方式。上面的代码会先按照 age
列进行降序排序,然后按照 name
列进行升序排序。如果需要进行多列排序只需要在对象中添加相应的属性即可。
使用 TypeORM 对多列进行排序是非常便捷的,在查询时只需要使用 order
参数来指定排序方式即可。要使用 TypeORM 进行排序需要先定义实体对象并与数据库进行连接。