1. Basic Commands

1.1. DB anlegen

use mongodb // Erstellt oder wechselt auf die DB mitarbeiter
db // Print -> jetzige DB -> mitarbeiter

1.2. DB Hilfe

db.help(); // Funktionen des „db“-Objekts anzeigen lassen

1.3. Collection erstellen

db.createCollection("mitarbeiter");

1.4. Collection Hilfe

db.mitarbeiter.help();

2. CRUD

2.1. Create

db.mitarbeiter.insert({name : {"first": "Gerhard", "last" : "Wurdinger"}, "abteilung" : "Abteilung1", "gehalt" : 22000, "bonus": 5000});

2.2. Read

Alle Dokumente mit der Abteilung
db.mitarbeiter.find({"abteilung":"Abteilung1"});
Ein Dokument mit der Abteilung
db.mitarbeiter.findOne({"abteilung":"Abteilung1"});
Zählt alle Dokumente mit der Abteilung
db.mitarbeiter.count({"abteilung":"Abteilung1"});

db.nuggets.find();

2.3. Update

Tabelle
{ "_id" : ObjectId("60d0c6c39e25483ad800688d"), "name" : { "first" : "Nikola", "last" : "Jokic" }, "position" : "Center" }
{ "_id" : ObjectId("60d0c9ef9e25483ad800688e"), "name" : { "first" : "Jamal", "last" : "Murray" }, "position" : "Point Guard" }
{ "_id" : ObjectId("60d0cacb9e25483ad800688f"), "name" : { "first" : "Facundo", "last" : "Campazzo" }, "position" : "Shooting Guard" }
{ "_id" : ObjectId("60d0caf89e25483ad8006890"), "name" : { "first" : "Aaron", "last" : "Gordon" }, "position" : "Small Forward" }
{ "_id" : ObjectId("60d0cb089e25483ad8006891"), "name" : { "first" : "Bol", "last" : "Bol" }, "position" : "Power Forward" }
Update über document replacement
var modObj = db.nuggets.findOne({"name" : { "first" : "Facundo", "last" : "Campazzo" }});
modObj.newPosition = "Point Guard";
Point Guard

db.nuggets.update({"name":{"first":"Facundo", "last":"Campazzo"}},modObj);
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
Upsert
db.nuggets.update({"name":{"first":"Jamal", "last":"Murray"}}, {"name":{"first":"Jamal", "last":"Murray"}, "position":"Center"}, true);

2.4. Delete

Update über document replacement
db.nuggets.remove({});

3. Aggregationen

  • Suche: $match

  • Projektion: $project

  • Gruppierung: $group

  • Sortierung, Skip, Limit, …​: $sort

3.1. Projektion

Nur Namen werden angezeigt
db.mitarbeiter.aggregate({"$project" : {"name":1}});

3.2. Gruppierung

Verfügbare Operatoren

  • $sum

  • $avg

  • $max

  • $min

  • $first

  • $last

Gruppieren von Mitarbeitern nach Abteilung
db.mitarbeiter.aggregate({"$group" : {"_id" : "$abteilung"}});
Ausgabe des Durchschnittsverdiensts nach Abteilung
db.mitarbeiter.aggregate({"$group" : {"_id" : "$abteilung", "Durchschnittsgehalt" : {"$avg" : "$gehalt"}}});