MongoDB-Bestell-Schema entwerfen

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 werden wir ein MongoDB-Bestell-Schema für eine E-Commerce-Anwendung entwerfen. Wir beginnen damit, ein strukturiertes Dokument zu erstellen, um essentielle Bestellinformationen zu speichern, einschließlich der Bestell-ID, der Kundeninformationen, des Bestelldatums und des Status. Anschließend erweitern wir die Kundeninformationen, indem wir eine geschachtelte Dokumentstruktur hinzufügen, um reichhaltige Kundeninformationen wie persönliche Informationen und Adresse zu erfassen. Schließlich werden wir Bestellpositionen, Zahlungsinformationen hinzufügen und Bestellstatusaktualisierungen verarbeiten, um ein umfassendes Bestell-Schema zu erstellen.

Bestellstruktur erstellen

In diesem Schritt werden wir ein MongoDB-Bestell-Schema für eine E-Commerce-Anwendung entwerfen. Wir beginnen damit, zu verstehen, wie ein strukturiertes Dokument zum Speichern von Bestellinformationen erstellt wird.

Öffnen Sie zunächst die MongoDB-Shell, indem Sie das Terminal starten und eingeben:

mongosh

Erstellen wir nun eine Datenbank für unsere E-Commerce-Bestellungen:

use ecommerce_orders

Wir entwerfen eine Bestellstruktur mit Schlüsselfeldern, die essentielle Bestellinformationen erfassen:

db.orders.insertOne({
  order_id: "ORD-2024-001",
  customer: {
    customer_id: "CUST-123",
    name: "John Doe",
    email: "[email protected]"
  },
  order_date: new Date(),
  status: "pending"
});

Zergliedern wir die Bestellstruktur:

  • order_id: Eindeutige Identifikationsnummer für die Bestellung
  • customer: Ein eingebettetes Dokument mit Kundeninformationen
  • order_date: Zeitstempel der Bestellungserstellung
  • status: Aktueller Status der Bestellung

Kundeninformationen hinzufügen

In diesem Schritt erweitern wir unser Bestell-Schema, indem wir detailliertere Kundeninformationen zu unserem MongoDB-Dokument hinzufügen. Wir zeigen, wie eine geschachtelte Dokumentstruktur erstellt wird, die reichhaltige Kundeninformationen erfassen kann.

Stellen Sie zunächst sicher, dass Sie noch in der MongoDB-Shell aus dem vorherigen Schritt sind. Wenn nicht, starten Sie sie erneut:

mongosh ecommerce_orders

Aktualisieren wir unser vorhandenes Bestelldokument mit detaillierteren Kundeninformationen:

db.orders.updateOne(
  { order_id: "ORD-2024-001" },
  {
    $set: {
      customer: {
        customer_id: "CUST-123",
        personal_info: {
          first_name: "John",
          last_name: "Doe",
          email: "[email protected]",
          phone: "+1-555-123-4567"
        },
        address: {
          street: "123 Tech Lane",
          city: "San Francisco",
          state: "CA",
          postal_code: "94105",
          country: "USA"
        },
        contact_preferences: {
          email_notifications: true,
          sms_notifications: false
        }
      }
    }
  }
);

Überprüfen wir das aktualisierte Dokument:

db.orders.findOne({ order_id: "ORD-2024-001" });

Dieses erweiterte Kunden-Schema bietet:

  • Detaillierte persönliche Informationen
  • Vollständige Adressdetails
  • Kontaktpräferenzen
  • Geschachtelte Dokumentstruktur für eine bessere Organisation

Im Vergleich zu flachen Schemas ermöglicht die geschachtelte Struktur eine flexiblere und umfassendere Datenspeicherung.

Bestellpositionen hinzufügen

In diesem Schritt erweitern wir unser Bestell-Schema, indem wir eine umfassende Liste von Bestellpositionen hinzufügen. Wir zeigen, wie ein Array von Positionen innerhalb unseres Bestelldokuments erstellt wird, um detaillierte Produktinformationen zu erfassen.

Stellen Sie sicher, dass Sie noch in der MongoDB-Shell sind:

mongosh ecommerce_orders

Aktualisieren wir nun unser Bestelldokument, um ein detailliertes Items-Array hinzuzufügen:

db.orders.updateOne(
  { order_id: "ORD-2024-001" },
  {
    $set: {
      items: [
        {
          product_id: "PROD-001",
          name: "Wireless Headphones",
          category: "Electronics",
          price: 129.99,
          quantity: 1,
          subtotal: 129.99
        },
        {
          product_id: "PROD-002",
          name: "Laptop Sleeve",
          category: "Accessories",
          price: 24.5,
          quantity: 2,
          subtotal: 49.0
        }
      ],
      total_items: 2,
      subtotal: 178.99,
      tax: 14.32,
      total: 193.31
    }
  }
);

Überprüfen wir das aktualisierte Dokument:

db.orders.findOne({ order_id: "ORD-2024-001" });

Wichtige Merkmale dieses Items-Schemas:

  • Array von Positionen mit detaillierten Produktinformationen
  • Jede Position enthält Produkt-ID, Name, Kategorie, Preis und Menge
  • Berechnete Subtotalbeträge für einzelne Positionen
  • Gesamtsumme der Bestellung (Anzahl der Positionen, Subtotal, Steuer, Gesamtbetrag)

Die Arraystruktur ermöglicht mehrere Positionen in einer einzelnen Bestellung und bietet Flexibilität für verschiedene Produkttypen.

Zahlungsinformationen festlegen

In diesem Schritt fügen wir detaillierte Zahlungsinformationen zu unserem Bestell-Schema hinzu. Wir zeigen, wie eine umfassende Zahlungsstruktur erstellt wird, die verschiedene zahlungsbezogene Details erfassen kann.

Stellen Sie sicher, dass Sie noch in der MongoDB-Shell sind:

mongosh ecommerce_orders

Aktualisieren wir nun unser Bestelldokument mit Zahlungsinformationen:

db.orders.updateOne(
  { order_id: "ORD-2024-001" },
  {
    $set: {
      payment: {
        method: "credit_card",
        card_info: {
          last_four: "4567",
          card_type: "Visa",
          payment_network: "Visa"
        },
        transaction: {
          transaction_id: "TXN-2024-001",
          amount: 193.31,
          currency: "USD",
          timestamp: new Date(),
          status: "completed"
        },
        billing_address: {
          street: "123 Tech Lane",
          city: "San Francisco",
          state: "CA",
          postal_code: "94105",
          country: "USA"
        }
      }
    }
  }
);

Überprüfen wir das aktualisierte Dokument:

db.orders.findOne({ order_id: "ORD-2024-001" });

Wichtige Merkmale dieses Zahlungsschemas:

  • Details über die Zahlungsmethode
  • Maskierte Karteninformationen
  • Transaktionsdetails
  • Rechnungsadresse
  • Sichere Handhabung von sensiblen Zahlungsdaten

Die geschachtelte Struktur bietet einen umfassenden Überblick über die Zahlung, während sensible Informationen sicher bleiben.

Bestellstatus verwalten

In diesem Schritt erweitern wir unser Bestell-Schema, indem wir einen umfassenden Bestellstatusverfolgungsmechanismus implementieren. Wir zeigen, wie ein detailliertes Statusverfolgungssystem erstellt wird, das den Lebenszyklus der Bestellung erfassen kann.

Stellen Sie sicher, dass Sie noch in der MongoDB-Shell sind:

mongosh ecommerce_orders

Aktualisieren wir nun unser Bestelldokument mit einer fortgeschrittenen Statusverfolgungsstruktur:

db.orders.updateOne(
  { order_id: "ORD-2024-001" },
  {
    $set: {
      status_tracking: {
        current_status: "processing",
        status_history: [
          {
            status: "created",
            timestamp: new Date(Date.now() - 86400000), // 24 Stunden zuvor
            notes: "Bestellung initial aufgegeben"
          },
          {
            status: "processing",
            timestamp: new Date(),
            notes: "Bestellung wird zur Lieferung vorbereitet"
          }
        ],
        fulfillment: {
          warehouse: "SF-01",
          estimated_shipping_date: new Date(Date.now() + 172800000), // 2 Tage von jetzt
          shipping_method: "standard"
        },
        tracking_number: null,
        expected_delivery: new Date(Date.now() + 432000000) // 5 Tage von jetzt
      }
    }
  }
);

Überprüfen wir das aktualisierte Dokument:

db.orders.findOne({ order_id: "ORD-2024-001" });

Wichtige Merkmale dieses Statusverfolgungsschemas:

  • Aktueller Status der Bestellung
  • Umfassende Statusgeschichte
  • Auslieferungsdetails
  • Geschätzte Versand- und Liefertermine
  • Flexibler Verfolgungsmechanismus

Die geschachtelte Struktur ermöglicht eine detaillierte Verfolgung und einfache Statusaktualisierungen.

Zusammenfassung

In diesem Lab haben wir gelernt, wie man ein MongoDB-Bestell-Schema für eine E-Commerce-Anwendung entwirft. Zunächst haben wir ein strukturiertes Dokument erstellt, um essentielle Bestellinformationen zu speichern, darunter eine eindeutige Bestell-ID, Kundeninformationen, Bestelldatum und Bestellstatus. Anschließend haben wir die Kundeninformationen erweitert, indem wir eine geschachtelte Dokumentstruktur hinzugefügt haben, um reichhaltige Kundeninformationen wie persönliche Informationen und Adresse zu erfassen. Darüber hinaus haben wir Bestellpositionen, Zahlungsinformationen aufgenommen und Bestellstatusaktualisierungen behandelt. Am Ende dieses Labs hatten wir ein umfassendes MongoDB-Bestell-Schema, das E-Commerce-Bestellungen effektiv verwalten kann.