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