📅  最后修改于: 2023-12-03 15:35:23.970000             🧑  作者: Mango
本文介绍如何使用 TypeORM 来连接 MongoDB 数据库。TypeORM 是一个 TypeScript 编写的 ORM 框架,可以与多种数据库系统集成,包括 MySQL, PostgreSQL, Oracle, SQLite, MS SQL Server 和 MongoDB。
要使用 TypeORM 连接 MongoDB 数据库,需要安装两个包:typeorm
和 mongodb
驱动程序。
npm install typeorm mongodb --save
在使用 TypeORM 之前,需要先创建一个数据库连接。可以通过以下代码来创建:
import { createConnection, ConnectionOptions } from 'typeorm';
const options: ConnectionOptions = {
type: 'mongodb',
host: 'localhost',
port: 27017,
database: 'mydatabase',
};
createConnection(options).then(() => {
console.log('Connected to MongoDB database');
}).catch((error) => {
console.log(`Connection error: ${error}`);
});
在上面的代码中,我们通过 createConnection
函数来创建连接。ConnectionOptions
对象包含了连接的参数。type
必须设置为 'mongodb'。host
是 MongoDB 服务器地址,port
是端口号。database
是要连接的数据库名称。
在使用 TypeORM 时,我们需要定义一个实体类来表示数据库中的表或集合。一个实体类对应一个 MongoDB 集合。例如,下面的代码定义了一个 User
实体类:
import { Entity, ObjectIdColumn, ObjectID, Column } from 'typeorm';
@Entity()
export class User {
@ObjectIdColumn()
id: ObjectID;
@Column()
firstName: string;
@Column()
lastName: string;
@Column()
email: string;
}
在上面的代码中,我们使用 @Entity
装饰器来定义实体类。@ObjectIdColumn
装饰器表示此字段是数据库对象 ID。@Column
装饰器用于定义每个字段的类型和验证规则。
创建实体对象非常简单,只需要使用实体类的构造函数即可:
import { getMongoRepository } from 'typeorm';
import { User } from './user.entity';
const userRepository = getMongoRepository(User);
const user = new User();
user.firstName = 'John';
user.lastName = 'Doe';
user.email = 'john.doe@example.com';
const result = await userRepository.save(user);
console.log(`Created user with ID ${result.id}`);
在上面的代码中,我们使用 getMongoRepository
函数获取实体的 Repository。然后,我们创建一个 User
对象并保存到数据库中。
如果我们要查询数据库中的数据,则可以使用以下代码来实现:
const users = await userRepository.find();
console.log(`Found ${users.length} user(s)`);
我们可以使用 find
方法来查找所有的实体。如果要根据条件查询,则可以使用 findOne
或 findMany
方法。
通过上述介绍,我们学习了如何使用 TypeORM 来连接和操作 MongoDB 数据库。TypeORM 提供了强大的功能和灵活性,可以让开发人员更加高效地与数据库打交道。我们希望本文对您有所帮助。