MongoDB $ Split -Operator

MongoDB $ Split -Operator

Das Wort Split bezieht sich auf die Aufteilung eines bestimmten Feldes oder die Aufteilung einer Zeichenfolge in zwei oder mehr Substrings. Der geteilte Operator von MongoDB erstellt Substrings für ein bestimmtes Feld einer Sammlung, die sich in der MongoDB -Datenbank befindet. Genauso wie wir das Konzept einer Untergruppe verwenden, die zu einem bestimmten Set in Mathematik gehört, gehören die vom geteilten Operator erstellten Substrings zu einem bestimmten Felddatensatz. In diesem MongoDB.

Beispiel 01:

Um mit MongoDB zu beginnen, sollten wir ein neues Schema in der Datenbank einrichten. In MongoDB kann das Schema mit Sammlungen erzeugt werden. Daher sollten Sie an MongoDB -Kompass- und MongoDB -Shell an Ihrem Ende konfiguriert sein. Erstens benötigen Sie eine Sammlung in Ihrer Datenbank, die für die Anwendung des geteilten Operators verwendet wird. Daher haben wir mit der Funktion „createCollection“ eine „Daten“ erstellt, indem wir die Sammlung „Daten“ verwenden,.

Test> db.CreateCollection ("Daten")
OK: 1

Wir beginnen die erste Abbildung mit der Einführung von Datensätzen in eine Sammlung von „Daten“. Daher wurde hier die Funktion "InsertMany ()) von MongoDB verwendet, um 5 Datensätze in die Sammlung einzufügen. Jede dieser Aufzeichnungen enthält 3 Felder: ID, Name und AdmDate. Die Ausgabebestätigung zeigt, dass die Datensätze erfolgreich in die Datenerfassung eingefügt werden.

Test> db.Daten.InsertMany ([ID: 1, Name: "Joe", AdmDate: "Dec-22-2020",
… ID: 2, Name: "Peter", AdmDate: "Nov-14-2021",
… ID: 3, Name: "Nina", AdmDate: "Nov-14-2018",
… ID: 4, Name: "Misha", AdmDate: "Jan-14-2022",
… ID: 5, Name: "Elen", AdmDate: "SEP-4-2021"])
Anerkannt: wahr,
InsertDIDs:
'0': ObjectID ("63BD2D8E01632FD3C02AB8D3"),
'1': ObjectID ("63BD2D8E01632FD3C02AB8D4"),
'2': ObjectID ("63BD2D8E01632FD3C02AB8D5"),
'3': ObjectID ("63BD2D8E01632FD3C02AB8D6"),
'4': ObjectID ("63BD2D8E01632FD3C02AB8D7")

Nachdem die Datensätze in der Datenerfassung in Form von Dokumenten eingefügt werden, werden wir sie in der MongoDB -Konsole in einem JSON -Format anzeigen. Die Funktion find () wäre also hier eine große Hilfe hier. Die Verwendung der Funktion find () zusammen mit der Funktion foreach (), die „printjson“ nimmt, wie ein Argument die Datensätze zeigt, wie die Ausgabe demonstriert.

Test> db.Daten.finden().foreach (printjson)
oder
_id: ObjectID ("63BD2D8E01632FD3C02AB8D4"), ID: 2, Name: 'Peter', AdmDate: 'Nov-14-2021'
oder
_id: ObjectID ("63BD2D8E01632FD3C02AB8D6"), ID: 4, Name: 'Misha', Admdate: 'Jan-14-2022'
oder

In dieser Illustration haben wir ein "Admdate" -Feld, das den Charakter zwischen Monat, Tag und Jahr enthält. Wir werden das Zeichen „-“ verwenden, um das Admdate-Feld in Substrings aufzuteilen. Um den Split -Operator zu verwenden, sollten wir die Gesamtfunktion von MongoDB zusammen mit dem Sammlungsnamen, der „Daten“ ist, abgießen. Diese Funktion beginnt mit dem hier verwendeten Operator "$ match", der hier verwendet wird, um den Datensatz mit einem seiner Felder anzugeben: ID: 2 Gibt den Datensatz 2 an.

Danach werfen wir den Projektbetreiber ab, um den geteilten Operator auf dem Feld „AdmDate“ der Datenerfassung zu verwenden, um das Feld in 3 Substrings aufzuteilen. Das Feld „Name“ wird so angezeigt, wie es ist, während das Feld des Feldes Admdate durch einen neuen Titel „Datum“ ersetzt wird. Die Ausgabe der Ausführung dieser Anweisung zeigt das Feld des Namens der 2nd Aufzeichnung wie es ist. Der Titel des AdmDate-Feld.

Test> db.Daten.Aggregate ([$ Match: id: 2, $ project: name: 1, Datum: $ split: ["$ admdate", "-"]])
[_id: ObjectID ("63bd2d8e01632fd3c02ab8d4"), Name: 'Peter', Datum: ['Nov', '14', '2021']]

Die Verwendung des geteilten Operators aktualisiert das Laufzeitergebnis nur, ohne den tatsächlichen Datensatz in der Datenbanksammlung zu beeinflussen. Die Abbildung dieses Konzepts wurde mit dem Funktionsbefehl für Find () und dessen Ausgabe für die Datenerfassung im angehängten Code -Snippet angezeigt. Das Feld „Admdate“ war vor der Verwendung eines geteilten Operators gleich.

Test> db.Daten.find (id: 2)
[_id: ObjectID ("63BD2D8E01632FD3C02AB8D4"), ID: 2, Name: 'Peter', AdmDate: 'Nov-14-2021']

Beispiel 02:

Im obigen Beispiel haben wir gesehen. Um ein aktualisiertes Feld (enthält Substrings) in die Sammlung hinzuzufügen. Stellen Sie sicher, dass Sie den Merge -Operator (angewendet auf die "Datenerfassung") vom Split -Operator (auf dem Feld AdmDate angewendet) trennen). Diese Abfrage gibt nichts zurück, da sie die Originalunterlagen der Sammlung „Daten“ aktualisiert haben, ohne etwas auf der MongoDB -Shell anzuzeigen.

Test> db.Daten.Aggregate ([$ project: dateInfo: $ split: ["$ admdate", "-"],
… $ Merge: "data"])

Verwenden des Merge -Operators in unserer oben genannten Anweisung, um das Feld zu spucken, haben wir die folgende Ausgabe.

Test> db.Daten.finden()
[_id: ObjectID ("63BD2D8E01632FD3C02AB8D3"), ID: 1, Name: 'Joe', Admdate: 'Dec-22-2020', DateInfo: ['Dec', '22', '2020'],
oder,
oder,
_id: objectId ("63bd2d8e01632fd3c02ab8d6"), ID: 4, Name: 'Misha', Admdate: 'Jan-14-2022', DateInfo: ['Jan', '14', '2022'],
_id: ObjectID ("63BD2D8E01632FD3C02AB8D7"), ID: 5, Name: 'Elen', AdmDate: 'Sep-4-2021', DateInfo: ['Sep', '4', '2021']]

Beispiel 03:

Lassen Sie uns eine neue Sammlung namens „Person“ in derselben Datenbank erstellen, die wir für unsere neue Illustration verwenden können. Die CreateCollection () wird mit dem Namen der Sammlung in ihrem Parameter abgegeben.

Test> db.CreateCollection ("Person")
OK: 1

Nachdem die Sammlung erstellt und leer ist, müssen wir Dokumente hinzuzufügen. Da wir in der Sammlung „Person“ mehr als 1 Datensatz hinzufügen werden, sollten wir hier die Funktion InsertMany () verwenden. Die 5 Datensätze mussten hinzugefügt werden, und jeder enthält 2 Felder: ID und Name. Wir werden das Feld Namen verwenden, damit der Split -Operator seine Zeichenfolge in Substrings aufteilt.

Test> db.Person.insertMany ([id: 1, name: "lia asif", id: 2, name: "joly woe", id: 3, name: "edenrobe", id: 4, name: " William Robert Patinson ", ID: 5, Name:" Justin P Trudo "])
Anerkannt: wahr,
InsertDIDs:
'0': ObjectID ("63BD33E401632FD3C02AB8E1"),
'1': ObjectID ("63BD33E401632FD3C02AB8E2"),
'2': ObjectID ("63BD33E401632FD3C02AB8E3"),
'3': ObjectID ("63BD33E401632FD3C02AB8E4"),
'4': ObjectID ("63BD33E401632FD3C02AB8E5")

Nachdem diese 5 Datensätze über die Funktion "InsertMany () von MongoDB erfolgreich zur Sammlung" Person "hinzugefügt wurden. Die Ausgabe dieser einfachen Anweisung zeigt 5 Datensätze der Personsammlung mit eindeutigen IDs.

Test> db.Person.finden()
[_id: ObjectID ("63BD33E401632FD3C02AB8E1"), ID: 1, Name: 'Lia Asif',
_id: ObjectID ("63BD33E401632FD3C02AB8E2"), ID: 2, Name: 'Joly Woe',
_id: ObjectID ("63BD33E401632FD3C02AB8E3"), ID: 3, Name: 'Eden Robe',
_id: objectId ("63bd33e401632fd3c02ab8e4"), ID: 4, Name: 'William Robert Patinson',
oder

Wie bereits erwähnt, werden wir das Feld Name verwenden, um den geteilten Operator mehr zu verstehen. Daher kommt hier die Gesamtfunktion erneut zusammen mit dem Projektbetreiber darin. Diesmal werden wir das Feld des Namens mit dem einzelnen Raum zwischen den Untergräben seiner Werte aufteilen. Der Titel des Feldes „Name“ wird durch den „Titel“ ersetzt. Nachdem wir diese Abfrage festgelegt haben, haben wir sie in der MongoDB -Shell ausgeführt, und es zeigt die geteilten Werte des Namensfelds in einem Array -Titel für alle Datensätze i an.e. Ein einzelner Name wurde in 2 oder mehr Substrings aufgeteilt.

Test> db.Person.Aggregate ([$ project: title: $ split: ["$ name", ""]])
[_id: ObjectID ("63BD33E401632FD3C02AB8E1"), Titel: ['Lia', 'ASIF'],
_id: objectId ("63bd33e401632fd3c02ab8e2"), Titel: ['Joly', 'Woe'],
_id: ObjectID ("63bd33e401632fd3c02ab8e3"), Titel: ['Eden', 'Robe'],
_id: ObjectID ("63bd33e401632fd3c02ab8e4"), Titel: ['William', 'Robert', 'Patinson'],
_id: ObjectID ("63bd33e401632fd3c02ab8e5"), Titel: ['Justin', 'P', 'Trudo']]

Abschluss

In diesem MongoDB -Leitfaden wird die Nutzung des Split -Operators in MongoDB erörtert und gleichzeitig mit dem Konzept der Teilmengen in Mathematik verglichen. Um unsere Erklärung zu unterstützen, haben wir 2-3 Abbildungen von MongoDB in Form von Code-Snippets besprochen. Diese Code -Beispiele veranschaulichen, wie ein geteilter Operator verwendet werden kann, um die Werte eines bestimmten Feldes zur Laufzeit und zur dauerhaften Änderung in der Datenbanksammlung in Substrings aufzuteilen.