Mongodb: so verwenden sie die $susbtr-funktion
Sie können die Funktion $substr in MongoDB verwenden, um einen Teilstring aus einem String zu extrahieren.
Diese Funktion verwendet die folgende grundlegende Syntax:
db.myCollection.aggregate([ { $project : {substring: { $substr : [ " $fullstring ", 0, 4 ] }}} ])
In diesem speziellen Beispiel werden alle vier Zeichen aus dem Feld mit der Bezeichnung „fullString“ ab Position 0 extrahiert.
Das folgende Beispiel zeigt, wie Sie diese Syntax in der Praxis bei einem Sammelverkauf mit folgenden Dokumenten anwenden können:
db.sales.insertOne({yearMonth: 201702, amount: 40 }) db.sales.insertOne({yearMonth: 201802, amount: 32 }) db.sales.insertOne({yearMonth: 201806, amount: 19 }) db.sales.insertOne({yearMonth: 201910, amount: 29 }) db.sales.insertOne({yearMonth: 201907, amount: 35 })
Beispiel: So verwenden Sie die Funktion $susbtr in MongoDB
Mit dem folgenden Code können wir die ersten vier Zeichen aus dem Feld „yearMonth“ extrahieren und in einem neuen Feld namens „year“ anzeigen:
db.sales.aggregate([ { $project : {year: { $substr : [ " $yearMonth ", 0, 4 ] }}} ])
Dieser Code erzeugt das folgende Ergebnis:
{ _id: ObjectId("620145544cb04b772fd7a929"), year: '2017' } { _id: ObjectId("620145544cb04b772fd7a92a"), year: '2018' } { _id: ObjectId("620145544cb04b772fd7a92b"), year: '2018' } { _id: ObjectId("620145544cb04b772fd7a92c"), year: '2019' } { _id: ObjectId("620145544cb04b772fd7a92d"), year: '2019' }
Beachten Sie, dass die ersten vier Zeichen des Felds „monthYear“ jedes Dokuments in einem neuen Feld mit der Bezeichnung „year“ angezeigt werden.
Es ist wichtig zu beachten, dass dieser Code nur die Teilzeichenfolge anzeigt .
Um der Sammlung, die diesen Teilstring enthält, tatsächlich ein neues Feld hinzuzufügen, müssen wir die Funktion $merge wie folgt verwenden:
db.sales.aggregate([ { $project : {year: { $substr : [ " $yearMonth ", 0, 4 ] }}}, { $merge : "sales" } ])
So sieht die aktualisierte Sammlung nun aus:
{ _id: ObjectId("620145544cb04b772fd7a929"), yearMonth: 201702, amount: 40, year: '2017' } { _id: ObjectId("620145544cb04b772fd7a92a"), yearMonth: 201802, amount: 32, year: '2018' } { _id: ObjectId("620145544cb04b772fd7a92b"), yearMonth: 201806, amount: 19, year: '2018' } { _id: ObjectId("620145544cb04b772fd7a92c"), yearMonth: 201910, amount: 29, year: '2019' } { _id: ObjectId("620145544cb04b772fd7a92d"), yearMonth: 201907, amount: 35, year: '2019' }
Beachten Sie, dass das neue Feld mit dem Titel „Jahr“ zu jedem Dokument in der Sammlung hinzugefügt wurde und die ersten vier Zeichen des Feldes „JahrMonat“ anzeigt.
Hinweis : Die vollständige Dokumentation zur $substr- 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 verketten Sie Zeichenfolgen aus zwei Feldern
MongoDB: So ersetzen Sie Zeichenfolgen