MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Crea una raccolta in MongoDB

Quando crei un database in MongoDB, il tuo database è fondamentalmente un contenitore vuoto a cui puoi aggiungere una o più raccolte.

Una raccolta è analoga a una tabella nei database relazionali.

Nei database relazionali, puoi usare CREATE TABLE per creare ogni tabella che desideri nel database.

Ma MongoDB non è un database relazionale e memorizza i suoi dati come documenti. Ogni documento è archiviato in una raccolta.

Questo articolo mostra come creare una raccolta in MongoDB.

Due opzioni

Hai due opzioni per creare raccolte in MongoDB:

  • Implicito
  • Esplicito

Ecco un esempio di ciascuno.

Crea una raccolta – implicitamente

Puoi creare una raccolta in modo implicito semplicemente aggiungendo un documento a una raccolta inesistente. Quando lo fai, la raccolta viene creata se non esiste già.

Ecco un esempio di creazione implicita di una raccolta:

db.pets.insert({ name: "Fetch" })

Questo crea una collezione chiamata pets e vi inserisce un documento.

In realtà, crea la raccolta solo se non esiste già. Se esiste già, inserisce semplicemente il documento nella raccolta esistente con quel nome.

Fondamentalmente, la sintassi è questa:

db.<collection>.insert()

Dove <collection> è il nome della collezione.

Crea una raccolta – in modo esplicito

Puoi anche creare raccolte in modo esplicito con db.createCollection() metodo. Questo metodo consente di specificare varie opzioni, come l'impostazione della dimensione massima o le regole di convalida della documentazione.

Questo è un po' analogo a CREATE TABLE istruzione in SQL. Detto questo, MongoDB non richiede che tu specifichi colonne, tipi di dati, ecc. Come dovresti specificare con CREATE TABLE istruzione quando si utilizza un database relazionale.

Ecco un esempio di utilizzo di db.createCollection() metodo per creare una raccolta:

db.createCollection("employees")

Risultato:

{ "ok" : 1 } 

In questo esempio, non ho specificato alcuna opzione. Pertanto, non c'era alcun reale vantaggio nel crearlo in questo modo creandolo implicitamente (come nell'esempio precedente).

Tuttavia, se desideri specificare le opzioni per la tua raccolta, crearla in modo esplicito è la strada da percorrere.

Ecco un esempio di specifica di alcune opzioni durante la creazione di una raccolta:

db.createCollection(
    "products", 
    { 
        capped : true, 
        size : 7500500, 
        max : 7000 
    } 
)

Risultato:

{ "ok" : 1 } 

Ecco una spiegazione delle opzioni che ho fornito in questo esempio:

  • Il capped argomento consente di specificare se la dimensione della raccolta deve essere limitata (cioè non può crescere oltre una determinata dimensione). Se specifichi true , devi anche impostare una dimensione massima in size campo.
  • Il size argomento imposta una dimensione massima in byte per una raccolta limitata. Una volta che una raccolta limitata raggiunge la sua dimensione massima, MongoDB rimuove i documenti più vecchi per fare spazio ai nuovi documenti. La size il campo è obbligatorio per le raccolte limitate e ignorato per le altre raccolte.
  • Il max argomento consente di specificare il numero massimo di documenti consentiti nella raccolta limitata. Se una raccolta limitata raggiunge la size limite prima di raggiungere il numero massimo di documenti, MongoDB rimuove i vecchi documenti. Pertanto, assicurati che la size argomento è sufficiente per contenere il numero di documenti specificato con il max argomento.

Queste sono tre delle varie opzioni che puoi specificare con db.createCollection() metodo.

Sintassi e altri dettagli

La sintassi completa (al momento della stesura di questo articolo) è simile alla seguente:

db.createCollection( <name>,
   {
     capped: <boolean>,
     autoIndexId: <boolean>,
     size: <number>,
     max: <number>,
     storageEngine: <document>,
     validator: <document>,
     validationLevel: <string>,
     validationAction: <string>,
     indexOptionDefaults: <document>,
     viewOn: <string>,
     pipeline: <pipeline>,
     collation: <document>,
     writeConcern: <document>
   }
)

Vedi db.createCollection() dalla documentazione ufficiale di MongoDB per una spiegazione dettagliata di ciascuna opzione.