📜  使用 typeorm 对多列进行排序 - Javascript (1)

📅  最后修改于: 2023-12-03 15:36:34.714000             🧑  作者: Mango

使用 TypeORM 对多列进行排序 - JavaScript

在数据库操作中,经常需要对多列进行排序以获取需要的数据,这时候就需要使用 TypeORM 来操作数据库。

安装 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 查询多列排序

使用 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 进行排序需要先定义实体对象并与数据库进行连接。