Mongodb: come trovare la lunghezza di una stringa


Puoi utilizzare i seguenti metodi per trovare la lunghezza di una stringa in MongoDB e utilizzare quella lunghezza di stringa nelle query:

Metodo 1: Trova la lunghezza della catena

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

Metodo 2: trova documenti la cui stringa è maggiore di una certa lunghezza

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

I seguenti esempi mostrano come utilizzare ciascun metodo con un team di raccolta con i seguenti documenti:

 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})

Esempio 1: trovare la lunghezza di una stringa

Possiamo utilizzare il seguente codice per calcolare la lunghezza della stringa nel campo “nome” di ciascun documento:

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

Questo codice restituisce i seguenti risultati:

 { _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 }

Il valore della lunghezza mostra la lunghezza della stringa nella colonna “nome”.

Per esempio:

  • La lunghezza della catena “Dallas Mavs” è di 11 .
  • La lunghezza della catena ‘San Antonio Spurs’ è 17 .

E così via.

Tieni presente che la lunghezza conta anche gli spazi vuoti.

Esempio 2: trovare documenti la cui stringa è maggiore di una certa lunghezza

Possiamo utilizzare il seguente codice per restituire solo i documenti la cui stringa nella colonna “nome” è maggiore di 14 :

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

Questa query restituisce i seguenti risultati:

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

Tieni presente che le uniche due squadre restituite sono quelle il cui campo “nome” è maggiore di 14 .

Nota : puoi trovare la documentazione completa per la funzione $strLenCP qui .

Risorse addizionali

I seguenti tutorial spiegano come eseguire altre operazioni comuni in MongoDB:

MongoDB: come dividere una stringa in un array di sottostringhe
MongoDB: come concatenare stringhe di due campi
MongoDB: come sostituire le stringhe in

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *