TypeORM - Arbeiten mit MongoDB
In diesem Kapitel wird die umfassende Unterstützung der MongoDB-Datenbank durch TypeORM erläutert. Hoffentlich haben wir mongodb mit npm installiert. Wenn es nicht installiert ist, verwenden Sie den folgenden Befehl, um den MongoDB-Treiber zu installieren.
npm install mongodb --save
Ein Projekt erstellen
Erstellen wir ein neues Projekt mit MongoDB wie folgt:
typeorm init --name MyProject --database mongodb
Konfigurieren Sie ormconfig.json
Lassen Sie uns die MongoDB-Host-, Port- und Datenbankoptionen in der Datei ormconfig.json wie unten angegeben konfigurieren.
ormconfig.json
{
"type": "mongodb",
"host": "localhost",
"port": 27017,
"database": "test",
"synchronize": true,
"logging": false,
"entities": [
"src/entity/**/*.ts"
],
"migrations": [ "src/migration/**/*.ts"
],
"subscribers": [ "src/subscriber/**/*.ts"
],
"cli": {
"entitiesDir": "src/entity", "migrationsDir": "src/migration", "subscribersDir": "src/subscriber"
}
}
Definieren Sie Entitäten und Spalten
Lassen Sie uns eine neue Entität mit dem Namen Student in Ihrem src-Verzeichnis erstellen. Entitäten und Spalten sind gleich. Um eine Primärschlüsselspalte zu generieren, verwenden wir@PrimaryColumn oder
@PrimaryGeneratedColumn. Dies kann definiert werden als @ObjectIdColumn. Ein einfaches Beispiel ist unten gezeigt -
Student.ts
import {Entity, ObjectID, ObjectIdColumn, Column} from "typeorm";
@Entity()
export class Student {
@ObjectIdColumn()
id: ObjectID;
@Column()
Name: string;
@Column()
Country: string;
}
Öffnen Sie zum Speichern dieser Entität die Datei index.ts und fügen Sie die folgenden Änderungen hinzu:
index.ts
import "reflect-metadata";
import {createConnection} from "typeorm";
import {Student} from "./entity/Student";
createConnection().then(async connection => {
console.log("Inserting a new Student into the database..."); const std = new Student(); std.Name = "Student1";
std.Country = "India";
await connection.manager.save(std); console.log("Saved a new user with id: " + std.id);
console.log("Loading users from the database...");
const stds = await connection.manager.find(Student); console.log("Loaded users: ", stds);
console.log("TypeORM with MongoDB");
}).catch(error => console.log(error));
Starten Sie nun Ihren Server und Sie erhalten die folgende Antwort:
npm start
MongoDB EntityManager
Wir können EntityManager auch zum Abrufen von Daten verwenden. Ein einfaches Beispiel ist unten gezeigt -
import {getManager} from "typeorm";
const manager = getManager();
const result = await manager.findOne(Student, { id:1 });
In ähnlicher Weise können wir auch das Repository verwenden, um auf Daten zuzugreifen.
import {getMongoRepository} from "typeorm";
const studentRepository = getMongoRepository(Student);
const result = await studentRepository.findOne({ id:1 });
Wenn Sie die Daten mit der gleichen Option wie folgt filtern möchten:
import {getMongoRepository} from "typeorm";
const studentRepository = getMongoRepository(Student);
const result = await studentRepository.find({
where: {
Name: {$eq: "Student1"},
}
});
Wie wir in diesem Kapitel gesehen haben, erleichtert TypeORM die Arbeit mit der MongoDB-Datenbank-Engine.