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);
3. Aggregationen
-
Suche: $match
-
Projektion: $project
-
Gruppierung: $group
-
Sortierung, Skip, Limit, …: $sort
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"}}});