📜  TypeORM-使用MongoDB(1)

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

TypeORM-使用MongoDB

简介

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;
}

在实体类中,我们需要使用 EntityObjectIdColumnColumn 装饰器来装饰数据模型类。Entity 装饰器表示这是一个数据模型类;ObjectIdColumn 装饰器表示这个字段是 MongoDB 中的 _idColumn 表示该字段在数据库中对应的列名,可选。

增删查改

在了解了如上概念之后,我们可以通过如下的方式进行简单的增删查改操作:

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 支持多种数据库,因此我们可以使用类似的方式操作不同种类的数据库,降低了学习和使用成本。