Node.js - MongoDB-Sammlung erstellen

Hallo dort, angehende Programmierer! Heute machen wir uns auf eine aufregende Reise in die Welt von Node.js und MongoDB. Als Ihr freundlicher Nachbarschafts-Computerlehrer bin ich hier, um Sie durch den Prozess der Erstellung von Sammlungen in MongoDB mit Node.js zu führen. Machen Sie sich keine Sorgen, wenn Sie neu im Programmieren sind – wir gehen Schritt für Schritt vor, und bevor Sie es wissen, erstellen Sie Sammlungen wie ein Profi!

Node.js - MongoDB Create Collection

Was ist MongoDB?

Bevor wir ins Detail gehen, lassen Sie uns mit den Grundlagen beginnen. MongoDB ist eine beliebte NoSQL-Datenbank, die Daten in flexiblen, JSON-ähnlichen Dokumenten speichert. Denken Sie daran als eine riesige digitale Akte, in der Sie alle Arten von Informationen speichern können, ohne sich zu sehr um die Struktur zu kümmern.

Was ist eine Sammlung?

In MongoDB ist eine Sammlung wie ein Ordner in dieser Akte. Es ist der Ort, an dem wir ähnliche Dokumente gruppieren. Zum Beispiel könnten Sie bei der Erstellung einer Bibliotheksdatenbank eine Sammlung für Bücher, eine für Autoren und eine für Leser haben.

Einrichten unserer Umgebung

Zuerst müssen wir sicherstellen, dass wir Node.js und MongoDB auf unserem Computer installiert haben. Wenn Sie das noch nicht getan haben, machen Sie einen kurzen Abstecher zu den offiziellen Websites und befolgen Sie die Installationsanleitungen.

Sobald alles eingerichtet ist, erstellen wir einen neuen Projektordner und initialisieren ihn:

mkdir mongodb-collection-tutorial
cd mongodb-collection-tutorial
npm init -y

Nun installieren wir den MongoDB-Treiber für Node.js:

npm install mongodb

Verbindung zu MongoDB herstellen

Gut, jetzt beginnt der Spaß! Erstellen wir eine neue Datei namens app.js und beginnen wir mit der Verbindung zu unserer MongoDB-Datenbank:

const { MongoClient } = require('mongodb');

// Verbindungs-URL
const url = 'mongodb://localhost:27017';

// Datenbankname
const dbName = 'myLibrary';

// Erstellen eines neuen MongoClient
const client = new MongoClient(url);

// Verbindung zum Server herstellen
async function connect() {
try {
await client.connect();
console.log('Erfolgreich mit der Datenbank verbunden');
const db = client.db(dbName);
return db;
} catch (error) {
console.error('Fehler bei der Verbindung zur Datenbank:', error);
}
}

In diesem Code richten wir eine Verbindung zu unserem lokalen MongoDB-Server ein. Wir verwenden localhost:27017, was die Standardadresse für MongoDB ist. Wir geben auch einen Datenbanknamen an, myLibrary. Machen Sie sich keine Sorgen, wenn die Datenbank noch nicht existiert – MongoDB erstellt sie für uns, wenn wir sie das erste Mal verwenden.

Eine Sammlung erstellen

Jetzt, da wir verbunden sind, erstellen wir unsere erste Sammlung! Wir erstellen eine Sammlung für Bücher in unserer Bibliothek:

async function createCollection() {
const db = await connect();
try {
const result = await db.createCollection('books');
console.log('Sammlung erfolgreich erstellt:', result.namespace);
} catch (error) {
if (error.code === 48) {
console.log('Sammlung exists already');
} else {
console.error('Fehler beim Erstellen der Sammlung:', error);
}
} finally {
await client.close();
}
}

createCollection();

Lassen Sie uns das zusammenfassen:

  1. Wir verwenden die Methode createCollection, um eine neue Sammlung namens 'books' zu erstellen.
  2. Wenn die Sammlung erfolgreich erstellt wird, loggen wir eine Erfolgsmeldung.
  3. Wenn es einen Fehler gibt, prüfen wir, ob es sich um einen Fehler handelt, weil die Sammlung bereits existiert (Fehlercode 48). Wenn ja, loggen wir eine Nachricht, dass die Sammlung bereits existiert. Für jeden anderen Fehler loggen wir die Fehlerdetails.
  4. Schließlich schließen wir die Datenbankverbindung.

Optionen zu unserer Sammlung hinzufügen

MongoDB ermöglicht es uns, Optionen beim Erstellen einer Sammlung anzugeben. Erstellen wir eine andere Sammlung mit einigen Optionen:

async function createCollectionWithOptions() {
const db = await connect();
try {
const options = {
capped: true,
size: 1000000,
max: 5000
};
const result = await db.createCollection('logs', options);
console.log('Sammlung mit Optionen erfolgreich erstellt:', result.namespace);
} catch (error) {
console.error('Fehler beim Erstellen der Sammlung mit Optionen:', error);
} finally {
await client.close();
}
}

createCollectionWithOptions();

In diesem Beispiel erstellen wir eine 'logs'-Sammlung mit den folgenden Optionen:

  • capped: true - Dies erstellt eine begrenzte Sammlung, die eine feste Größe hat.
  • size: 1000000 - Dies setzt die maximale Größe der Sammlung auf 1 Million Byte.
  • max: 5000 - Dies setzt die maximale Anzahl der Dokumente, die die Sammlung enthalten kann, auf 5000.

Diese Optionen sind nützlich für Sammlungen, die eine "rollierende" Natur haben, wie Protokolldateien, bei denen Sie nur die neuesten Einträge behalten möchten.

Überprüfen, ob eine Sammlung existiert

Manchmal möchten Sie überprüfen, ob eine Sammlung bereits existiert, bevor Sie versuchen, sie zu erstellen. Hier ist, wie Sie das tun können:

async function checkCollectionExists(collectionName) {
const db = await connect();
try {
const collections = await db.listCollections({name: collectionName}).toArray();
if (collections.length > 0) {
console.log(`Sammlung ${collectionName} exists`);
} else {
console.log(`Sammlung ${collectionName} does not exist`);
}
} catch (error) {
console.error('Fehler beim Überprüfen der Sammlung:', error);
} finally {
await client.close();
}
}

checkCollectionExists('books');

Diese Funktion verwendet die Methode listCollections, um zu überprüfen, ob eine Sammlung mit dem gegebenen Namen existiert. Wenn das zurückgegebene Array eine Länge größer als 0 hat, bedeutet dies, dass die Sammlung existiert.

Alles zusammenbringen

Jetzt, da wir gelernt haben, Sammlungen zu erstellen, lassen uns alles in einem einzigen Skript zusammenfassen:

const { MongoClient } = require('mongodb');

const url = 'mongodb://localhost:27017';
const dbName = 'myLibrary';
const client = new MongoClient(url);

async function connect() {
try {
await client.connect();
console.log('Erfolgreich mit der Datenbank verbunden');
return client.db(dbName);
} catch (error) {
console.error('Fehler bei der Verbindung zur Datenbank:', error);
}
}

async function createCollections() {
const db = await connect();
try {
// Erstellen der 'books'-Sammlung
await db.createCollection('books');
console.log('Büchersammlung erfolgreich erstellt');

// Erstellen der 'logs'-Sammlung mit Optionen
const logOptions = { capped: true, size: 1000000, max: 5000 };
await db.createCollection('logs', logOptions);
console.log('Protokollierungssammlung erfolgreich erstellt mit Optionen');

// Überprüfen, ob die 'authors'-Sammlung existiert
const collections = await db.listCollections({name: 'authors'}).toArray();
if (collections.length > 0) {
console.log('Autorensammlung exists already');
} else {
await db.createCollection('authors');
console.log('Autorensammlung erfolgreich erstellt');
}
} catch (error) {
console.error('Fehler in createCollections:', error);
} finally {
await client.close();
}
}

createCollections();

Dieses Skript kombiniert alle Konzepte, die wir gelernt haben:

  1. Verbindung zur Datenbank herstellen
  2. Eine einfache Sammlung ('books') erstellen
  3. Eine Sammlung mit Optionen ('logs') erstellen
  4. Überprüfen, ob eine Sammlung ('authors') existiert, bevor sie erstellt wird

Fazit

Herzlichen Glückwunsch! Sie haben gerade Ihre ersten Schritte in die Welt von MongoDB und Node.js gemacht. Wir haben gelernt, wie man eine MongoDB-Datenbank verbindet, Sammlungen erstellt, Optionen zu Sammlungen hinzufügt und überprüft, ob Sammlungen existieren. Dies sind grundlegende Fähigkeiten, die Ihnen in Ihrem weiteren Weg im Datenbankmanagement mit MongoDB von großem Nutzen sein werden.

Denken Sie daran, Übung macht den Meister. Versuchen Sie, verschiedene Arten von Sammlungen zu erstellen, experimentieren Sie mit verschiedenen Optionen und haben Sie keine Angst vor Fehlern – das ist, wie wir lernen!

Hier ist eine Tabelle, die die Hauptmethoden zusammenfasst, die wir verwendet haben:

Methode Beschreibung
MongoClient.connect() Verbindet sich mit dem MongoDB-Server
db.createCollection() Erstellt eine neue Sammlung
db.listCollections() Listet vorhandene Sammlungen

Weiter codieren, weiter lernen und vor allem: Spaß haben! Bis zum nächsten Mal, fröhliches Datenbanken!

Credits: Image by storyset