Mongodb: so teilen sie einen string in ein array von teilstrings auf
Mit der folgenden Syntax können Sie in MongoDB einen String in ein Array von Teilstrings aufteilen:
db.myCollection.aggregate([ { $project : { split_field: { $split : [ " $field1 ", " " ] } } }, { $merge : "myCollection" } ])
In diesem speziellen Beispiel wird die Zeichenfolge „field1“ basierend auf Leerzeichen in ein neues Feld mit dem Namen „split_field“ aufgeteilt und das neue Feld der Sammlung mit dem Namen myCollection hinzugefügt.
Das folgende Beispiel zeigt, wie diese Syntax in der Praxis mit einem Inkassoteam mit den folgenden Dokumenten verwendet wird :
db.teams.insertOne({name: " Dallas Mavs ", points: 31}) db.teams.insertOne({name: " San Antonio Spurs ", points: 22}) db.teams.insertOne({name: " Houston Rockets ", points: 19}) db.teams.insertOne({name: " Boston Celtics ", points: 26}) db.teams.insertOne({name: " Cleveland Cavs ", points: 33})
Beispiel: Teilen Sie einen String in ein Array von Teilstrings in MongoDB auf
Wir können den folgenden Code verwenden, um die Zeichenfolge in der Spalte „Name“ in ein Array von Zeichenfolgen aufzuteilen und die Ergebnisse in einem neuen Feld mit dem Namen „split_name“ in der Teams- Sammlung anzuzeigen:
db.teams.aggregate([ { $project : { split_name: { $split : [ " $name ", " " ] } } }, { $merge : "teams" } ])
So sieht die aktualisierte Sammlung nun aus:
{ _id: ObjectId("62014a924cb04b772fd7a938"), name: 'Dallas Mavs', points: 31, split_name: ['Dallas', 'Mavs'] } { _id: ObjectId("62014a924cb04b772fd7a939"), name: 'San Antonio Spurs', points: 22, split_name: ['San', 'Antonio', 'Spurs'] } { _id: ObjectId("62014a924cb04b772fd7a93a"), name: 'Houston Rockets', points: 19, split_name: ['Houston', 'Rockets'] } { _id: ObjectId("62014a924cb04b772fd7a93b"), name: 'Boston Celtics', points: 26, split_name: ['Boston', 'Celtics'] } { _id: ObjectId("62014a924cb04b772fd7a93c"), name: 'Cleveland Cavs', points: 33, split_name: ['Cleveland', 'Cavs'] }
Beachten Sie, dass jedes Dokument über ein neues Feld namens „split_name“ verfügt, das ein Array von Teilzeichenfolgen des Felds „name“ enthält.
Für dieses spezielle Beispiel haben wir uns dafür entschieden, die ursprüngliche Zeichenfolge mit einem Leerzeichen als Trennzeichen aufzuteilen.
Wenn die Zeichenfolge durch ein anderes Trennzeichen (z. B. Bindestrich, Schrägstrich, Doppelpunkt usw.) getrennt ist, verwenden Sie einfach dieses Trennzeichen in der Funktion $split .
Hinweis : Die vollständige Dokumentation zur $split- Funktion finden Sie hier .
Zusätzliche Ressourcen
In den folgenden Tutorials wird erläutert, wie Sie andere gängige Vorgänge in MongoDB ausführen:
MongoDB: So überprüfen Sie, ob das Feld eine Zeichenfolge enthält
MongoDB: So fügen Sie ein neues Feld hinzu
MongoDB: So löschen Sie ein Feld