Mongodb: come utilizzare la funzione $susbtr


Puoi utilizzare la funzione $substr in MongoDB per estrarre una sottostringa da una stringa.

Questa funzione utilizza la seguente sintassi di base:

 db.myCollection.aggregate([
  { $project : {substring: { $substr : [ " $fullstring ", 0, 4 ] }}}
])

Questo particolare esempio estrae tutti e quattro i caratteri dal campo etichettato “fullString” a partire dalla posizione 0.

L’esempio seguente mostra come utilizzare nella pratica questa sintassi con una vendita in colletta con i seguenti documenti:

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

Esempio: come utilizzare la funzione $susbtr in MongoDB

Possiamo utilizzare il codice seguente per estrarre i primi quattro caratteri dal campo “yearMonth” e visualizzarli in un nuovo campo chiamato “year”:

 db.sales.aggregate([
  { $project : {year: { $substr : [ " $yearMonth ", 0, 4 ] }}}
])

Questo codice produce il seguente risultato:

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

Tieni presente che i primi quattro caratteri del campo “meseAnno” di ciascun documento vengono visualizzati in un nuovo campo denominato “anno”.

È importante notare che questo codice visualizza solo la sottostringa.

Per aggiungere effettivamente un nuovo campo alla raccolta che contiene questa sottostringa, dobbiamo utilizzare la funzione $merge come segue:

 db.sales.aggregate([
  { $project : {year: { $substr : [ " $yearMonth ", 0, 4 ] }}},
  { $merge : "sales" }
])

Ecco come appare ora la raccolta aggiornata:

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

Tieni presente che il nuovo campo intitolato “anno” è stato aggiunto a ciascun documento della raccolta e visualizza i primi quattro caratteri del campo “annomese”.

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

Risorse addizionali

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

MongoDB: come verificare se il campo contiene una stringa
MongoDB: come concatenare stringhe di due campi
MongoDB: come sostituire le stringhe

Aggiungi un commento

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