📅  最后修改于: 2023-12-03 15:20:42.816000             🧑  作者: Mango
TypeORM 是一个被广泛使用的 ORM 框架,它支持多种数据库,包括 MongoDB。使用 TypeORM 可以大大简化数据库操作过程,提高开发效率。
TypeORM 的使用需要安装 MongoDB 驱动。我们可以通过以下命令来安装 TypeORM 和 MongoDB 驱动:
npm install typeorm mongodb --save
要连接 MongoDB 数据库,我们需要在 TypeORM 中配置连接选项。我们可以在项目根目录下创建一个名为 ormconfig.json 的文件,并添加以下内容:
{
"type": "mongodb",
"host": "localhost",
"port": 27017,
"database": "test",
"synchronize": true,
"logging": false,
"entities": [
"entity/*.js"
],
"useNewUrlParser": true,
"useUnifiedTopology": true
}
type
:指定数据库类型为 MongoDB。host
:MongoDB 数据库的主机名。port
:MongoDB 数据库的端口号。database
:要连接的 MongoDB 数据库名称。synchronize
:自动同步数据模型和数据表结构。logging
:是否打印 SQL 日志。entities
:指定数据模型所在的文件夹。useNewUrlParser
:MongoDB 数据库连接选项。useUnifiedTopology
:MongoDB 数据库连接选项。我们可以通过以下代码来创建一个 User 实体:
import { Entity, ObjectIdColumn, ObjectID, Column } from 'typeorm';
@Entity()
export class User {
@ObjectIdColumn()
id: ObjectID;
@Column()
name: string;
@Column()
age: number;
}
在实体类中,我们需要使用 Entity
、ObjectIdColumn
和 Column
装饰器来装饰数据模型类。Entity
装饰器表示这是一个数据模型类;ObjectIdColumn
装饰器表示这个字段是 MongoDB 中的 _id
;Column
表示该字段在数据库中对应的列名,可选。
在了解了如上概念之后,我们可以通过如下的方式进行简单的增删查改操作:
import { getMongoRepository } from "typeorm";
import { User } from "./entity/User";
// 创建一个新用户
const user = new User();
user.name = "张三";
user.age = 18;
const userRepository = getMongoRepository(User);
// 插入数据
await userRepository.insert(user);
// 根据条件查询数据
const users = await userRepository.find({ name: "张三" });
// 修改数据
await userRepository.update({ name: "张三" }, { age: 19 });
// 删除数据
await userRepository.delete({ name: "张三" });
TypeORM 提供了非常简洁、易用的操作方法,可以大大提高开发效率。同时,由于 TypeORM 支持多种数据库,因此我们可以使用类似的方式操作不同种类的数据库,降低了学习和使用成本。