typeorm是一个用于Node.js和TypeScript的ORM(对象关系映射)库,它提供了一种方便的方式来操作数据库。在使用typeorm时,如果需要排除Postgres嵌入式数组中的所有匹配项,可以使用Postgres的数组操作符和typeorm的QueryBuilder来实现。
以下是一种可能的解决方案:
npm install typeorm pg
import { Entity, Column, PrimaryGeneratedColumn } from 'typeorm';
@Entity()
export class User {
@PrimaryGeneratedColumn()
id: number;
@Column('text', { array: true })
roles: string[];
}
import { getRepository } from 'typeorm';
const userRepository = getRepository(User);
const query = userRepository.createQueryBuilder('user')
.where('NOT :role = ANY(user.roles)', { role: 'admin' })
.getMany();
query.then(users => {
console.log(users);
}).catch(error => {
console.error(error);
});
在上面的代码中,我们使用NOT :role = ANY(user.roles)
来排除包含"admin"的角色。:role
是一个参数占位符,它将在执行查询时被实际的值替换。
这样,你就可以使用typeorm排除Postgres嵌入式数组中的所有匹配项了。
对于typeorm的更多信息和使用方法,你可以参考腾讯云的TypeORM产品介绍页面:TypeORM产品介绍。
领取专属 10元无门槛券
手把手带您无忧上云