Beispiel 1: synchron
Verbindung mit DB und Collection
mongodb-Modul einbinden
const { MongoClient } = require("mongodb");
Verbindungsdaten
const url = "mongodb://...";
Verbindung initialisieren
const client = new MongoClient(url);
Verbindung öffnen
if (client.connect()) {
console.log("Verbindung erfolgreich");
}
Datenbank auswählen
const dbName = "tutorial";
const db = client.db(dbName);
Collection auswählen
const collectionName = "products";
const collection = db.collection(collectionName);
Abfragen
Ausgabe aller Daten
collection
.find()
.toArray((err, documents) => {
if (err) {
console.log(err.message);
process.exit(1);
}
console.log(documents);
client.close();
});
Ausgabe nach Suchmuster
collection
.find({
name: "Apfel",
})
.toArray((err, documents) => {
if (err) {
console.log(err.message);
process.exit(1);
}
console.log(documents);
client.close();
});
Beispiel: Preis größer als 1
collection.find({ price: { $gt: 1 }, }) ...
Beispiel: Preis kleiner als 1
collection.find({ price: { $lt: 1 }, }) ...
Ausgabe mit nur einem Ergebnis erzwingen
collection.findOne(
{
category: "Obst",
},
(err, document) => {
if (err) {
console.log(err.message);
process.exit(1);
}
console.log(document);
client.close();
}
);
weitere Selektoren (Query Operatoren)
https://www.mongodb.com/docs/manual/reference/operator/query/#std-label-query-selectors
Insert
Neue Daten
const insertData = {
name: "Birne",
price: "0.90",
categorie: "Obst",
};
Insert ausführen
collection.insertOne(insertData, (err) => {
if (err) {
console.log("Verbindungsfehler: ", err.message);
process.exit(1);
}
console.log("Insert wurde ausgeführt");
client.close();
});
Update
collection.updateMany(
{ name: "Apfel" },
{ $set: { name: "Apfel rot" } },
{ upsert: true },
(err) => {
if (err) {
console.log("Verbindungsfehler: ", err.message);
process.exit(1);
}
console.log("Update wurde ausgeführt");
client.close();
}
);
{ upsert: true }
Überprüfung, ob der Datensatz aktualisiert (Update), oder neu angelegt (Insert) wird.
Update Operatoren
https://www.mongodb.com/docs/manual/reference/operator/update/
Delete
collection.deleteMany({ name: "Apfel rot" }, (err) => {
if (err) {
console.log("Verbindungsfehler: ", err.message);
process.exit(1);
}
console.log("Löschen beendet");
client.close();
});