MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

So aktualisieren Sie vorhandene Dokumente in MongoDB

MongoDB wurde erstmals 2007 von Dwight Merriman und Eliot Horowitz entwickelt, als sie Skalierbarkeitsprobleme mit relationalen Datenbanken hatten, als sie in ihrem Unternehmen Webanwendungen für Unternehmen, bekannt als DoubleClick, entwickelten. Laut einem der Entwickler wurde der Name von dem Wort humongous abgeleitet um die Idee der Verarbeitung einer großen Datenmenge zu unterstützen.

Die Datenbank wurde 2009 zu einem Open-Source-Projekt, während das Unternehmen kommerzielle Supportdienste anbot. Viele Unternehmen haben MongoDB aufgrund seiner einzigartigen Funktionen eingeführt. Eines dieser Unternehmen war die Zeitung The New York Times, und sie nutzten diese Datenbank, um eine webbasierte Anwendung zum Einreichen der Fotos zu erstellen. Im Jahr 2013 hat sich DoubleClick offiziell in MongoDB Inc. umbenannt.

MongoDB-Komponenten

Zu den Kernkomponenten von MongoDB und ihrer Verwendung gehören:

  • Sammlungen – Ihre RDBMS-Gegenstücke sind Tabellen. Sie sind eine Reihe von MongoDB-Dokumenten
  • Dokument – Sein Gegenstück zu RDBMS ist Row. Dies ist eine Sammlung von Daten, die im BSON-Format gespeichert sind
  • Feld – Dies ist ein einzelnes Element in einem MongoDB-Dokument, das Werte als Felder und Wertepaare enthält.

Dokumentbasierte Speicherung

Ein Dokument ist eine Datenstruktur mit Name-Wert-Paaren wie JSON, und es ist mühelos, jedes benutzerdefinierte Objekt einer beliebigen Programmiersprache einem MongoDB-Dokument zuzuordnen. Zum Beispiel ein Student Objekt hat Attribute wie name, studentid, und Themen wobei Themen eine Liste sind. Ein Dokument für Studenten in MongoDB sieht folgendermaßen aus:

{
Name: "Michael",
Studentid: 1
Subjects: ["Mathematics, English, Geography"]}

Sie werden feststellen, dass Dokumente JSON-Darstellungen von benutzerdefinierten Objekten aus der obigen Darstellung sind. Außerdem werden übermäßige JOINS vermieden, indem Daten in Form von Arrays und Dokumenten (eingebettet) innerhalb eines Dokuments gespeichert werden.

Aktualisieren von Dokumenten in MongoDB

MongoDB stellt ein Update () bereit Befehl zum Aktualisieren der Dokumente einer Sammlung. Grundlegende Parameter im Befehl sind eine Bedingung, für die ein Dokument aktualisiert werden muss, und die Änderung, die durchgeführt werden muss. Ein Benutzer kann der Aktualisierungsanweisung Kriterien hinzufügen, um nur ausgewählte Dokumente zu aktualisieren. Das folgende Beispiel zeigt, wie die Aktualisierung eines einzelnen Werts in einem Dokument durchgeführt wird:

  • Geben Sie updateOne ein Befehl.
  • Wählen Sie die Bedingung, die verwendet werden soll, um zu entscheiden, welches Dokument aktualisiert wird. Beispielsweise aktualisieren wir ein Dokument mit Autor und Artikel.
  • Verwenden Sie das Set Befehl, um den Feldnamen zu ändern, wählen Sie den Feldnamen aus, den Sie ändern möchten, und geben Sie dann den neuen Wert wie unten gezeigt ein:
db.fossdb.updateOne(
{ item: "article" },
{
$set: { "foss": "fosslinux", author: "Abraham" },
$currentDate: { lastModified: true }
}
)

Ausgabe:

Hinweis: Stellen Sie sicher, dass Sie die richtige Datenbank mit dem Befehl „Verwenden“ auswählen. Zum Beispiel verwende ich „fossdb“; Um die richtige Datenbank auszuwählen, führe ich daher den folgenden Befehl aus:

use fossdb

Ausgabe:

Die Ausgabe zeigt, dass ein Datensatz der Bedingung entsprach, und daher wird der relevante Feldwert im Dokument geändert.

Um Massendokumente gleichzeitig in MongoDB zu aktualisieren, muss ein Benutzer eine Mehrfachoption verwenden, da standardmäßig nur ein Dokument gleichzeitig geändert wird. Der folgende Code zeigt, wie ein Benutzer viele Dokumente gleichzeitig aktualisieren kann:

  • Wir werden zuerst das Dokument finden, dessen Autor „Abraham“ ist, und den Namen des Autors von „Abraham“ in „Masai“ ändern. Wir geben dann das updateMany aus Befehl.
  • Wählen Sie dann die Bedingung, um zu entscheiden, welches Dokument geändert werden soll. Wie bereits erwähnt, verwenden wir das Dokument mit dem Namen „Autor“.
  • Wählen Sie die Feldnamen aus, die Sie aktualisieren möchten, und geben Sie dann ihre neuen Werte entsprechend ein.
db.fossdb.updateMany(
{ "articles": { $lt: 50 } },
{
$set: { "foss": "fosslinux", authors: "Masai" },
$currentDate: { lastModified: true }
}
)

Ausgabe:

Nach erfolgreicher Ausführung dieses Befehls zeigt die Ausgabe, dass ein Datensatz der Bedingung entsprach und daher das relevante Feld geändert wurde.

Warum sich Benutzer für MongoDB entscheiden sollten

Aus den folgenden Gründen sollten Benutzer mit der Verwendung von MongoDB beginnen:

Dokumentorientiert

Da es sich bei dieser Datenbank um eine NoSQL-Datenbank handelt, werden Daten in Dokumenten gespeichert, anstatt Daten in einem relationalen Format zu haben. Dadurch ist diese Datenbank sehr flexibel und an reale Situationen und Anforderungen anpassbar.

Ad-hoc-Abfragen

Die Suche nach Feldern, Abfragen und Suchen mit regulären Ausdrücken wird in MongoDB unterstützt; Daher können Abfragen durchgeführt werden, um bestimmte Felder innerhalb von Dokumenten zurückzubringen.

Indizierung

Indizes in MongoDB werden erstellt, um die Leistung von Suchen innerhalb der Datenbank zu verbessern.

Lastenausgleich

MongoDB verwendet Sharding, um horizontal zu skalieren, indem Daten auf mehrere MongoDB-Instanzen aufgeteilt werden.

Replikation

Diese Datenbank bietet Hochverfügbarkeit mit Replikatsätzen. Jeder Replikatsatz besteht aus zwei oder mehr MongoDB-Instanzen. Ein Replikatsatzmitglied kann jederzeit die Rolle des primären oder sekundären Replikats übernehmen. Das primäre Replikat ist der zentrale Server, der mit dem Client interagiert und alle Lese-/Schreibvorgänge ausführt. Im Gegensatz dazu verwaltet das sekundäre Replikat eine Kopie des primären Replikats unter Verwendung integrierter Replikationsdaten.

Datenmodellierung in MongoDB

Aus der obigen Diskussion geht hervor, dass Daten in Mongo DB ein flexibles Schema haben. Die Sammlungen von MongoDB erzwingen keine Dokumentstruktur, im Gegensatz zu SQL-Datenbanken, bei denen ein Benutzer das Schema einer Tabelle deklarieren muss, bevor er Daten einfügt. Diese Art von Flexibilität macht MongoDB so leistungsfähig.

Beim Modellieren von Daten in MongoDB sollten Benutzer Folgendes beachten:

  • Datenabrufmuster – Bei starker Abfragenutzung sollten Benutzer die Verwendung von Indizes in ihren Datenmodellen in Betracht ziehen, um die Abfrageeffizienz zu verbessern.
  • Anwendungsanforderungen – Ein Benutzer sollte sich die geschäftlichen Anforderungen der Anwendung ansehen und sehen, welche Daten und Art von Daten für die Anwendung benötigt werden.
  • Wird die Datenbank häufig geändert? – Benutzer müssen die Verwendung von Indizes überdenken oder bei Bedarf Sharding in ihr Datenmodellierungsdesign integrieren, um die Effizienz ihrer gesamten MongoDB-Umgebung zu verbessern.

Schlussfolgerung

Dieser Artikel hat eine kurze Analyse von MongoDB gegeben, einer viralen Datenbank, die heute auf dem Markt ist. Außerdem wurde erklärt, wie man bestehende Dokumente in MongoDB aktualisiert. Wir hoffen, dass dieser Artikel Ihnen hilft, MongoDB besser zu verstehen. Wenden Sie sich bei Problemen über den Kommentarbereich an uns, und wir werden uns umgehend bei Ihnen melden.