Mongodb: so ermitteln sie die länge einer zeichenfolge


Sie können die folgenden Methoden verwenden, um die Länge einer Zeichenfolge in MongoDB zu ermitteln und diese Zeichenfolgenlänge in Abfragen zu verwenden:

Methode 1: Ermitteln Sie die Länge der Kette

 db.myCollection.aggregate([
  { $project : {
        "name": 1,
        "length": { $strLenCP : " $name " }
  }}
])

Methode 2: Suchen Sie nach Dokumenten, deren Zeichenfolge eine bestimmte Länge überschreitet

 db.myCollection.find({ 
    "name": { $exists : true },
    $expr : { $gt : [ { $strLenCP : " $name " }, 14 ] } 
})

Die folgenden Beispiele zeigen, wie die einzelnen Methoden mit einem Inkassoteam mit den folgenden Dokumenten verwendet werden:

 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 1: Ermitteln der Länge einer Zeichenfolge

Mit dem folgenden Code können wir die Länge der Zeichenfolge im Feld „Name“ jedes Dokuments berechnen:

 db.teams.aggregate([
  { $project : {
        "name": 1,
        "length": { $strLenCP : " $name " }
  }}
])

Dieser Code gibt die folgenden Ergebnisse zurück:

 { _id: ObjectId("62014eff4cb04b772fd7a93d"),
  name: 'Dallas Mavs',
  length: 11 }
{ _id: ObjectId("62014eff4cb04b772fd7a93e"),
  name: 'San Antonio Spurs',
  length: 17 }
{ _id: ObjectId("62014eff4cb04b772fd7a93f"),
  name: 'Houston Rockets',
  length: 15 }
{ _id: ObjectId("62014eff4cb04b772fd7a940"),
  name: 'Boston Celtics',
  length: 14 }
{ _id: ObjectId("62014eff4cb04b772fd7a941"),
  name: 'Cleveland Cavs',
  length: 14 }

Der Längenwert zeigt die Länge der Zeichenfolge in der Spalte „Name“ an.

Zum Beispiel:

  • Die Länge der „Dallas Mavs“-Kette beträgt 11 .
  • Die Länge der „San Antonio Spurs“-Kette beträgt 17 .

Und so weiter.

Beachten Sie, dass die Länge auch Leerzeichen zählt.

Beispiel 2: Suchen Sie nach Dokumenten, deren Zeichenfolge größer als eine bestimmte Länge ist

Mit dem folgenden Code können wir nur Dokumente zurückgeben, deren Zeichenfolge in der Spalte „Name“ größer als 14 ist:

 db.teams.find({ 
    "name": { $exists : true },
    $expr : { $gt : [ { $strLenCP : " $name " }, 14 ] } 
})

Diese Abfrage gibt die folgenden Ergebnisse zurück:

 { _id: ObjectId("62014eff4cb04b772fd7a93e"),
  name: 'San Antonio Spurs',
  points: 22 }
{ _id: ObjectId("62014eff4cb04b772fd7a93f"),
  name: 'Houston Rockets',
  points: 19 }

Beachten Sie, dass nur zwei Teams zurückgegeben werden, deren Feld „Name“ größer als 14 ist.

Hinweis : Die vollständige Dokumentation für die Funktion $strLenCP 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 teilen Sie einen String in ein Array von Teilstrings auf
MongoDB: So verketten Sie Zeichenfolgen aus zwei Feldern
MongoDB: So ersetzen Sie Zeichenfolgen in

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert