Zum Hauptinhalt springen

Tag 11

1 Dokumentationsaufträge

1.1 Dokumentation zur Übung "Import/Export/Backup/Restore und Queries"

1.1.1 Import

Mongo Cities 1000 importieren

mongoimport --db=cities --collection=cities --file=mongo_cities1000.json

1.1.2 Queries

Listen Sie alle Städte aus der Timezone "Europa" (alle Zeitzonen von Europa) auf.

db.cities.find({
timezone:{
$regex:"Europe"
}
},
{
_id:0,
name:1
})

1.1.3 Aggregate

Führen Sie die folgende Query auf Ihrer Datenbank aus:

db.cities.aggregate([
{
$match: {
'timezone': {
$eq: 'Europe/London'
}
}
},
{
$group: {
_id: 'averagePopulation',
avgPop: {
$avg: '$population'
}
}
}
])

Was macht die Query?

Zuerst werden alle Objekte mit der Zeitzone "Europe/London" gesucht. Anschliessend wird ein Durchschnitt von der Population mit der ID averagePopulation erstellt.

1.1.4 Sort

Führen Sie die folgende Query auf Ihrer Datenbank aus:

db.cities.aggregate([
{
$match: {
'timezone': {
$eq: 'Europe/London'
}
}
},
{
$sort: {
population: -1
}
},
{
$project: {
_id: 0,
name: 1,
population: 1
}
}
])

Was macht die Query?

Zuerst werden wieder alle Objekte mit der Zeitzone "Europe/London" gesucht. Anschliessend wird die Population absteigend (-1 = Absteigend, 1 = Aufsteigend)

1.1.5 Backup und Restore

Führen Sie von Hand (oder über Bash-Script) ein Backup und ein Restore für Ihre Testdatenbank durch

Backup
mongodump --archive=cities.20230603.archive --db=cities
Restore
mongorestore --archive=cities.20230603.archive --nsFrom="cities.*" --nsTo="cities2.*"

Um einen Klon in einem Befehl zu erstellen kann folgender Befehl genutzt werden.

Klon
mongodump --archive --db=cities | mongorestore --archive --nsFrom="cities.*" --nsTo="cities2.*"