In MongoDB, è possibile elencare i database uti­liz­zan­do il comando List Databases, ma esistono anche altri modi per farlo. Inoltre, List Databases può essere mo­di­fi­ca­to im­po­stan­do alcuni parametri.

List Databases e le sue al­ter­na­ti­ve

Sebbene MongoDB funzioni di­ver­sa­men­te dai sistemi di gestione di database re­la­zio­na­li come MySQL, una buona visione d’insieme di tutte le ope­ra­zio­ni e dei dati è de­ter­mi­nan­te per una gestione ottimale anche nella soluzione NoSQL. È per questo motivo che il sistema offre diversi comandi MongoDB per con­sul­ta­re i documenti me­mo­riz­za­ti.

Ana­lo­ga­men­te al comando List Col­lec­tions di MongoDB, che consente di elencare le raccolte, List Databases fa la stessa cosa con i database. Questo comando non solo riporta i nomi dei vari database, ma fornisce anche preziose in­for­ma­zio­ni sull’utilizzo della memoria e sulle spe­ci­fi­che. Chi non volesse uti­liz­za­re il comando MongoDB List Databases può anche ripiegare su soluzioni al­ter­na­ti­ve, a seconda della de­sti­na­zio­ne d’uso.

Struttura e filtro del comando List Databases

Il comando List Databases mostra tutti i database di­spo­ni­bi­li fornendo alcune sta­ti­sti­che di base. Ciò consente di ottenere una visione d’insieme e di sapere se è ne­ces­sa­rio creare altri database con il comando MongoDB Create Database, oppure eliminare un database con il comando MongoDB Drop Database. Il comando si presenta con la seguente sintassi:

db.adminCommand ( { listDatabases: 1 } )

List Databases dispone inoltre di quattro parametri opzionali uti­liz­za­bi­li per rendere un elenco ancora più preciso:

  • filter: permette di ef­fet­tua­re una ricerca ancora più accurata. Uti­liz­zan­do questa opzione riuscite a filtrare i risultati della ricerca esclu­den­do fin dall’inizio de­ter­mi­na­ti database. I parametri relativi al filtro sono: name, si­zeOn­Di­sk, empty e shards.
  • nameOnly: mediante questa opzione vengono stabilite le modalità di emissione dei soli nomi dei database o anche delle in­for­ma­zio­ni ag­giun­ti­ve. nameOnly è un valore booleano, quindi true o false.
  • au­tho­ri­zed­Da­ta­ba­ses: in questa opzione, anch’essa un valore booleano, è possibile stabilire quali database sono vi­sua­liz­za­ti a seconda dell’utente. Per esempio, potete impedire a persone non au­to­riz­za­te di ottenere un riepilogo di tutti i database.
  • comment: consente di lasciare commenti in merito al comando in qualsiasi formato BSON adatto.

Esempio di List Databases

Ser­via­mo­ci di un esempio per capire come fun­zio­na­no il comando List Databases e i suoi parametri. Im­ma­gi­nia­mo di stare lavorando con i database di un’azienda. Im­met­ten­do il comando cor­ri­spon­den­te senza ulteriori spe­ci­fi­che, verrà vi­sua­liz­za­to un output di questo tipo:

db.adminCommand({listDatabases: 1})
{
"databases" : [
{
"name" : "admin",
"sizeOnDisk" : <size>,</size>
"empty" : false
},
{
"name" : "team",
"sizeOnDisk" : <size>,</size>
"empty" : false
},
{
"name" : "clienti_italia",
"sizeOnDisk" : <size>,</size>
"empty" : false
}
],
"name" : "clienti_francia",
"sizeOnDisk" : <size>,</size>
"empty" : false
}
],
"totalSize" : <totalsize></totalsize>
"totalSizeMb" : <totalsizemb>,</totalsizemb>
"ok" : 1
}

List Databases con nameOnly

Cambiando il valore nameOnly in “true”, List Databases emetterà il codice seguente:

db.adminCommand({listDatabases: 1, nameOnly: true})
{
"databases" : [
{
"name" : "admin",
},
{
"name" : "team",
},
{
"name" : "clienti_italia",
}
{
"name" : "clienti_francia",
}
],
"ok" : 1
}

List Databases con filtro

Spe­cial­men­te se si usano numerosi database, è utile spe­ci­fi­ca­re ul­te­rior­men­te i criteri di ricerca per il comando List Databases. Nel seguente esempio, mo­stre­re­mo solo i database che iniziano con le lettere “cli”:

>db.adminCommand({listDatabases: 1, filter: {"name": /^cli/}})
{
"databases" : [
{
"name" : "clienti_italia",
"sizeOnDisk" : <size>,</size>
"empty" : false
}
],
"name" : "clienti_francia",
"sizeOnDisk" : <size>,</size>
"empty" : false
}
],
"totalSize" : <totalsize></totalsize>
"totalSizeMb" : <totalsizemb>,</totalsizemb>
"ok" : 1
}
Consiglio: MongoDB gestito da IONOS

Con Managed MongoDB from IONOS enables you to con­cen­tra­te on the es­sen­tials. From in­stal­la­tion to operation and main­te­nan­ce work, IONOS makes sure you always get the best per­for­man­ce from your data banks.

Al­ter­na­ti­ve a List Databases

Oltre a List Databases, MongoDB offre altre opzioni per vi­sua­liz­za­re i database di­spo­ni­bi­li.

Prima opzione: show dbs e show databases

Per ottenere un rapido riepilogo dei database, esiste un metodo molto semplice: il comando show dbs di MongoDB, il quale consente di elencare tutti i database MongoDB di­spo­ni­bi­li:

>show dbs
admin 0.007GB
team 0.013GB
clienti_italia 0.053GB
clienti_francia 0.027GB

Il comando show databases funziona così:

>show databases
admin 0.007GB
team 0.0013GB
clienti_italia 0.053GB
clienti_francia 0.027GB
N.B.

Entrambi i comandi sono in grado di ri­co­no­sce­re i database cor­ri­spon­den­ti soltanto quando vi sono contenuti documenti.

Seconda opzione: get.DBNames

Un’altra valida al­ter­na­ti­va al comando List Databases è il metodo db.getMongo().getDB­Na­mes(). Sebbene non vengano fornite in­for­ma­zio­ni ag­giun­ti­ve, questo approccio è comunque suf­fi­cien­te per una buona visione d’insieme. Il risultato è il seguente:

>db.getMongo().getDBNames()
[
"admin",
"team",
"clienti_italia",
"clienti_francia"
]
Vai al menu prin­ci­pa­le