Arbeiten mit MongoDB-Daten

MongoDBMongoDBBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab lernst du, wie du mit MongoDB-Daten umgehen kannst, einschließlich des Einfügens von Datumswerten, des Abfragens von Datumsbereichen, der Formatierung der Datumsausgabe, des Aktualisieren von Datumsfeldern und des Sortierens nach Datum. Du wirst verschiedene Methoden zum Einfügen von Daten erkunden, wie das Verwenden des aktuellen Datums, das Erstellen eines bestimmten Datums und das Verwenden eines Zeitstempels in Millisekunden. Darüber hinaus lernst du, wie du Datumsbereiche abfragst, die Datumsausgabe formatierst, Datumsfelder aktualisierst und Daten nach Datum sortierst. Dieses Lab bietet einen umfassenden Überblick über die Arbeit mit den datenbezogenen Funktionen von MongoDB.

Datumswerte einfügen

In diesem Schritt lernst du, wie du Datumswerte in MongoDB mit der MongoDB-Shell (mongosh) einfügen kannst. Datumswerte sind ein essentieller Datentyp in Datenbanken, und MongoDB bietet leistungsstarke Möglichkeiten, mit ihnen umzugehen.

Lassen Sie uns zunächst die MongoDB-Shell starten:

mongosh

Erstellen wir nun eine Datenbank für unsere Datumsexperimente:

use datelab

MongoDB ermöglicht es Ihnen, Datumswerte auf verschiedene Weise einzufügen. Wir werden drei häufige Methoden untersuchen:

  1. Verwenden des aktuellen Datums:
db.events.insertOne({
    event_name: "Lab Start",
    timestamp: new Date()
})
  1. Erstellen eines bestimmten Datums:
db.events.insertOne({
    event_name: "Konferenz",
    date: new Date("2024-06-15T10:30:00Z")
})
  1. Verwenden eines Zeitstempels in Millisekunden:
db.events.insertOne({
    event_name: "Projektfrist",
    timestamp: new Date(1718476800000)
})

Überprüfen wir die eingefügten Dokumente:

db.events.find()

Beispielausgabe:

[
  {
    _id: ObjectId("..."),
    event_name: 'Lab Start',
    timestamp: 2024-02-15T12:34:56.789Z
  },
  {
    _id: ObjectId("..."),
    event_name: 'Konferenz',
    date: 2024-06-15T10:30:00.000Z
  },
  {
    _id: ObjectId("..."),
    event_name: 'Projektfrist',
    timestamp: 2024-06-15T00:00:00.000Z
  }
]

Analysieren wir die Dateneinfügemethoden:

  • new Date() erstellt einen Zeitstempel für den aktuellen Moment
  • new Date("YYYY-MM-DDTHH:mm:ssZ") erstellt ein bestimmtes Datum und eine bestimmte Uhrzeit
  • new Date(milliseconds) erstellt ein Datum aus einem Unix-Zeitstempel in Millisekunden

Datumsbereiche abfragen

In diesem Schritt lernst du, wie du Datumsbereiche in MongoDB abfragst. Auf Grundlage des vorherigen Schritts verwenden wir die Datenbank datelab, um verschiedene Datumsbereichsabfragen zu demonstrieren.

Stellen wir zunächst sicher, dass wir in der richtigen Datenbank sind und unsere vorhandenen Dokumente überprüfen:

use datelab
db.events.find()

Fügen wir nun weitere Ereignisse hinzu, um einen interessanteren Datensatz zu erstellen:

db.events.insertMany([
    {
        event_name: "Sommerkonferenz",
        date: new Date("2024-07-15T09:00:00Z")
    },
    {
        event_name: "Winter-Workshop",
        date: new Date("2024-01-20T14:30:00Z")
    },
    {
        event_name: "Frühlingstreffen",
        date: new Date("2024-04-10T11:15:00Z")
    }
])

Untersuchen wir verschiedene Möglichkeiten, Datumsbereiche abzufragen:

  1. Suchen Sie nach Ereignissen nach einem bestimmten Datum:
db.events.find({
    date: { $gt: new Date("2024-06-01") }
})
  1. Suchen Sie nach Ereignissen zwischen zwei Daten:
db.events.find({
    date: {
        $gte: new Date("2024-01-01"),
        $lt: new Date("2024-06-01")
    }
})
  1. Verwenden von Vergleichsoperatoren mit Daten:
db.events.find({
    date: {
        $gte: new Date("2024-01-01"),
        $lte: new Date("2024-12-31")
    }
})

Erklärung der Abfrageoperatoren:

  • $gt: Größer als
  • $gte: Größer als oder gleich
  • $lt: Kleiner als
  • $lte: Kleiner als oder gleich

Beispielausgabe:

[
  {
    _id: ObjectId("..."),
    event_name: 'Winter-Workshop',
    date: 2024-01-20T14:30:00.000Z
  },
  {
    _id: ObjectId("..."),
    event_name: 'Frühlingstreffen',
    date: 2024-04-10T11:15:00.000Z
  }
]

Datumsausgabe formatieren

In diesem Schritt lernst du, wie du die Datumsausgabe in MongoDB mit verschiedenen Methoden formatierst. Wir werden die Datenbank datelab aus den vorherigen Schritten weiter verwenden.

Stellen wir zunächst sicher, dass wir in der richtigen Datenbank sind:

use datelab

MongoDB bietet mehrere Möglichkeiten, Datumswerte zu formatieren. Wir werden verschiedene Formatierungstechniken untersuchen:

  1. Verwenden des Aggregationsoperators $dateToString:
db.events.aggregate([
    {
        $project: {
            event_name: 1,
            formatted_date: {
                $dateToString: {
                    format: "%Y-%m-%d %H:%M:%S",
                    date: "$date"
                }
            }
        }
    }
])
  1. Extrahieren von bestimmten Datumsbestandteilen:
db.events.aggregate([
    {
        $project: {
            event_name: 1,
            year: { $year: "$date" },
            month: { $month: "$date" },
            day: { $dayOfMonth: "$date" },
            hour: { $hour: "$date" }
        }
    }
])
  1. Erstellen von benutzerdefinierten Datumsformaten:
db.events.aggregate([
    {
        $project: {
            event_name: 1,
            custom_format: {
                $dateToString: {
                    format: "%B %d, %Y um %I:%M %p",
                    date: "$date"
                }
            }
        }
    }
])

Datumsformatierungsangaben:

  • %Y: 4-stellige Jahreszahl
  • %m: Monat als 2-stellige Zahl
  • %d: Tag des Monats
  • %H: Stunde (24-Stunden-Uhr)
  • %I: Stunde (12-Stunden-Uhr)
  • %M: Minuten
  • %S: Sekunden
  • %p: AM/PM-Kennzeichen

Beispielausgabe:

[
  {
    _id: ObjectId("..."),
    event_name: 'Sommerkonferenz',
    formatted_date: '2024-07-15 09:00:00',
    year: 2024,
    month: 7,
    day: 15,
    hour: 9,
    custom_format: 'Juli 15, 2024 um 09:00 AM'
  }
]

Datumsfelder aktualisieren

In diesem Schritt lernst du, wie du Datumsfelder in MongoDB aktualisierst. Wir werden die Datenbank datelab aus den vorherigen Schritten weiter verwenden und verschiedene Datumsaktualisierungstechniken untersuchen.

Stellen wir zunächst sicher, dass wir in der richtigen Datenbank sind:

use datelab

Fügen wir zunächst ein paar weitere Ereignisse hinzu, mit denen wir arbeiten können:

db.events.insertMany([
    {
        event_name: "Tech-Konferenz",
        date: new Date("2024-08-20T10:00:00Z"),
        status: "Geplant"
    },
    {
        event_name: "Entwickler-Treffen",
        date: new Date("2024-09-15T14:30:00Z"),
        status: "Warte auf Genehmigung"
    }
])

Untersuchen wir nun verschiedene Möglichkeiten, Datumsfelder zu aktualisieren:

  1. Aktualisieren des Datums eines einzelnen Dokuments:
db.events.updateOne(
    { event_name: "Tech-Konferenz" },
    {
        $set: {
            date: new Date("2024-09-01T10:00:00Z"),
            status: "Bestätigt"
        }
    }
)
  1. Aktualisieren mehrerer Dokumente mit Datumsoperationen:
db.events.updateMany(
    { date: { $lt: new Date("2024-07-01") } },
    {
        $set: {
            status: "Historisch",
            updated_at: new Date()
        }
    }
)
  1. Datum inkrementieren mit $currentDate:
db.events.updateOne(
    { event_name: "Entwickler-Treffen" },
    {
        $currentDate: {
            last_modified: true
        },
        $inc: {
            "event_duration.days": 1
        }
    }
)

Überprüfen wir unsere Aktualisierungen:

db.events.find()

Beispielausgabe:

[
  {
    _id: ObjectId("..."),
    event_name: 'Tech-Konferenz',
    date: 2024-09-01T10:00:00.000Z,
    status: 'Bestätigt'
  },
  {
    _id: ObjectId("..."),
    event_name: 'Entwickler-Treffen',
    date: 2024-09-15T14:30:00.000Z,
    status: 'Warte auf Genehmigung',
    last_modified: ISODate("2024-02-15T12:34:56.789Z")
  }
]

Wichtige Aktualisierungsoperatoren:

  • $set: Ersetzt Feldwerte
  • $currentDate: Aktualisiert mit aktuellem Zeitstempel
  • $inc: Inkrementiert numerische Werte
  • $unset: Entfernt Felder

Sortieren nach Datum

In diesem letzten Schritt lernst du, wie du Dokumente in MongoDB nach Datum sortierst. Wir werden die Datenbank datelab aus den vorherigen Schritten weiter verwenden und verschiedene Sortiertechniken untersuchen.

Stellen wir zunächst sicher, dass wir in der richtigen Datenbank sind:

use datelab

Fügen wir ein paar weitere Ereignisse hinzu, um einen vielfältigen Datensatz zu erstellen:

db.events.insertMany([
    {
        event_name: "AI-Sommerkongress",
        date: new Date("2024-10-15T09:00:00Z"),
        category: "Technologie"
    },
    {
        event_name: "Blockchain-Workshop",
        date: new Date("2024-05-22T14:30:00Z"),
        category: "Finanzen"
    },
    {
        event_name: "Cloud Computing Expo",
        date: new Date("2024-03-10T11:15:00Z"),
        category: "IT"
    }
])

Untersuchen wir nun verschiedene Möglichkeiten, Dokumente nach Datum zu sortieren:

  1. Sortieren Sie Ereignisse in aufsteigender Reihenfolge (am frühesten bis am spätesten):
db.events.find().sort({ date: 1 })
  1. Sortieren Sie Ereignisse in absteigender Reihenfolge (am spätesten bis am frühesten):
db.events.find().sort({ date: -1 })
  1. Kombinieren Sie das Sortieren mit dem Filtern:
db.events.find({
    category: "Technologie"
}).sort({ date: 1 })
  1. Fortgeschrittenes Sortieren mit mehreren Kriterien:
db.events.find().sort({
    category: 1,  // Sortieren Sie zuerst nach Kategorie
    date: -1      // Dann nach Datum in absteigender Reihenfolge
})

Überprüfen wir unsere Sortierergebnisse:

db.events.find({}, {
    event_name: 1,
    date: 1,
    category: 1
}).sort({ date: 1 })

Beispielausgabe:

[
  {
    _id: ObjectId("..."),
    event_name: 'Cloud Computing Expo',
    date: 2024-03-10T11:15:00.000Z,
    category: 'IT'
  },
  {
    _id: ObjectId("..."),
    event_name: 'Blockchain Workshop',
    date: 2024-05-22T14:30:00.000Z,
    category: 'Finanzen'
  },
  {
    _id: ObjectId("..."),
    event_name: 'AI-Sommerkongress',
    date: 2024-10-15T09:00:00.000Z,
    category: 'Technologie'
  }
]

Wichtige Punkte beim Sortieren:

  • 1: Aufsteigende Reihenfolge
  • -1: Absteigende Reihenfolge
  • Kann nach mehreren Feldern sortiert werden
  • Funktioniert mit Daten, Zeichenketten und Zahlen

Zusammenfassung

In diesem Lab haben Sie gelernt, wie Sie Datumswerte in MongoDB mit verschiedenen Methoden einfügen, einschließlich des Einsatzes des aktuellen Datums, der Erstellung eines bestimmten Datums und der Verwendung eines Zeitstempels in Millisekunden. Sie haben auch verschiedene Möglichkeiten zur Abfrage von Datumsbereichen, zur Formatierung der Datumsausgabe, zum Aktualisieren von Datumsfeldern und zum Sortieren nach Datum untersucht. Diese Techniken sind essentiell für die Arbeit mit zeitlichen Daten in MongoDB-Anwendungen.

Das Lab hat Schlüsselkonzepte wie das Erstellen einer Datenbank, das Einfügen von Dokumenten mit Datumsfeldern, das Abfragen von Daten basierend auf Datumsbereichen, die Formatierung der Datumsausgabe, das Aktualisieren von datenbezogenen Feldern und das Sortieren von Daten nach Datum behandelt. Diese Fähigkeiten sind grundlegend für die Entwicklung von Anwendungen, die mit Daten und Zeitstempeln in einer MongoDB-Datenbank arbeiten müssen.