Konvertieren Sie relationale Datenbanken und SQL für MongoDB

Jede Datenbank in MongoDB besteht aus Sammlungen, die einem RDBMS oder einer relationalen Datenbank entsprechen, die aus SQL-Tabellen besteht. In jeder Datenbank werden die Sammlungsdaten in Form von Dokumenten gespeichert, die den Tabellen entsprechen, in denen Daten in Zeilen gespeichert werden.

Während die Zeilendaten in den Spalten gespeichert werden, hat ein Dokument eine JSON-Struktur (in MongoDB als BSON bezeichnet). Schließlich haben wir Zeilen in einer Zeile von SQL, die Felder in MongoDB hat.

rb.jpg

Entsprechungen zwischen SQL-Abfragen und Mondodb-Abfragen

Angenommen, in der obigen MySQL-Datenbank sehen wir, wie die Abfragen zugeordnet und konvertiert werden

Erstellen Sie eine Tabelle oder Sammlung
In MongoDB muss die Auflistungsstruktur nicht explizit erstellt werden, wie dies bei Tabellen mit einer CREATE TABLE-Abfrage der Fall ist. Die Struktur des Dokuments wird automatisch erstellt, wenn das erste Einfügen in die Sammlung erfolgt. Sie können jedoch mit dem Befehl createCollection eine leere Sammlung erstellen.

Mysql
CREATE TABLE `clients` (` id` int (11) NICHT NULL AUTO_INCREMENT, `name` varchar (255) NICHT NULL,` city` varchar (20) NICHT NULL, PRIMARY KEY (`id`))

MongoDB
db.createCollection (“clients”)

Datensätze hinzufügen

MYSQL
INSERT IN `clients` (` id`, `name`,` city`) VALUES (NULL, ‘Fernan’, ‘Barcelona’);

MongoDB
db.clientes.insert ({Name: “Fernan”, Stadt: Barcelona “})

Alle Datensätze anzeigen
Mysql
SELECT * FROM `clients`

MongoDB
db.clientes.find ()

Suchen Sie einen Kunden nach Namen

Mysql
SELECT * FROM `clients` WHERE` name` = ‘Fernan’

MongoDB
db.clientes.find ({name: “Fernan”})

Jetzt werden wir weitere Kriterien hinzufügen, um den Client nach Name und Ort wiederherzustellen. Die mit Kommas angegebenen Kriterienfelder repräsentieren die logische UND-Bedingung. Daher wird in dieser Anweisung nach Dokumenten gesucht, die beide Kriterien aufweisen.

See also  So stellen Sie den Dunkelmodus auf Outlook.com Webmail ein

Mysql
SELECT * `FROM` clients` WHERE` name` = ‘Fernan’ AND` city` = ‘Barcelona’

MongoDB
db.clientes.find ({Name: “Fernan”, Stadt: “Barcelona”})

Zeigen Sie alle Datensätze in der Kundentabelle in aufsteigender Reihenfolge nach Namen sortiert an

Mysql
SELECT * FROM `clients` ***** by name ASC

MongoDB
db.clients.find (). sort ({name: 1})

Um die Anzahl der zurückgegebenen Dokumente zu begrenzen, wird die Begrenzungsmethode der Angabe der Anzahl der Dokumente verwendet.

Mysql
SELECT * FROM `clients` LIMIT 10

MongoDB
db.clientes.find (). limit (10)

Um eine Anzahl von Registern zu überspringen, wird die Sprungfunktion in MongoDB verwendet. Die folgende Anweisung begrenzt beispielsweise 10 Datensätze und überspringt die ersten fünf.

Mysql
SELECT * FROM `posts` LIMIT 10 OFFSET 5

MongoDB
db.clientes.find (). limit (10) .skip (5)

Für die Aktualisierungsmethode werden die Kriterien für die Auswahl der Dokumente angegeben. Der erste Parameter gibt den Datensatz an, der zweite Parameter gibt den tatsächlich auszuführenden Aktualisierungsvorgang an. Mit der folgenden Abfrage werden beispielsweise alle Dokumente mit dem Namen Carlos ausgewählt und Ihre Stadt als Madrid festgelegt.

Ein Unterschied besteht darin, dass die MongoDB-Aktualisierungsabfrage standardmäßig nur einen Datensatz und die erste Übereinstimmung des Dokuments aktualisiert. Um alle entsprechenden Dokumente zu aktualisieren, müssen wir einen dritten Parameter anbieten, der ein Vielfaches als wahr angibt und angibt, dass wir mehrere Dokumente aktualisieren möchten.

Mysql
UPDATE-Clients SET city = “Madrid” WHERE name = ‘Carlos’

MongoDB
Aktualisieren Sie alle Übereinstimmungen
db.clientes.update ({name: “Carlos”}, {$ set: {city: “Madrid”}}, {multi: true})
Aktualisieren Sie den ersten übereinstimmenden Datensatz
db.clientes.update ({name: “Carlos”}, {$ set: {city: “Madrid”})

See also  Importieren Sie eine Datei aus einer Berechnungsvorlage nach MySQL mit PHP

administrator

Leave a Reply

Your email address will not be published. Required fields are marked *