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

Il tutorial di base di MongoDB

MongoDB è un database NoSQL. Sotto NoSQL ombrello mettiamo tutti quei database che non usano il linguaggio SQL per interrogare i dati.

Caratteristiche chiave di MongoDB

MongoDB è un database molto compatibile con JavaScript. Espone un'API JavaScript che possiamo utilizzare per creare database e raccolte di oggetti (chiamati documenti ).

È senza schema , il che significa che non è necessario predefinire una struttura per i dati prima di archiviarli.

In MongoDB puoi archiviare qualsiasi oggetto senza doversi preoccupare dei campi particolari che compongono questo oggetto e di come memorizzarli. Dici a MongoDB di archiviare quell'oggetto.

I dati vengono archiviati in un formato simile a JSON, ma migliorato per consentire l'archiviazione di più di semplici tipi di dati di base.

Installazione

Andiamo avanti e installiamo MongoDB. Potresti utilizzare uno dei tanti provider cloud che offrono l'accesso a un'istanza MongoDB, ma per motivi di apprendimento, lo installeremo noi stessi.

Uso un Mac, quindi le istruzioni di installazione in questo tutorial fanno riferimento a quel sistema operativo.

Apri il terminale ed esegui:

brew tap mongodb/brew
brew install mongodb-community

Questo è tutto.

Le istruzioni non erano troppo lunghe o complicate, ammesso che tu sappia come usare il terminale e come installare Homebrew.

L'installazione ci dice questo:

To have launchd start mongodb now and restart at login:
  brew services start mongodb-community
Or, if you don't want/need a background service you can just run:
  mongod --config /usr/local/etc/mongod.conf

Puoi scegliere di avviare MongoDB una volta e farlo funzionare per sempre come servizio in background nel tuo computer (la cosa che preferisco), oppure puoi eseguirlo solo quando ne hai bisogno, eseguendo quest'ultimo comando.

La configurazione predefinita per MongoDB è questa:

systemLog:
  destination: file
  path: /usr/local/var/log/mongodb/mongo.log
  logAppend: true
storage:
  dbPath: /usr/local/var/mongodb
net:
  bindIp: 127.0.0.1

I log sono archiviati in /usr/local/var/log/mongodb/mongo.log e il database è archiviato in /usr/local/var/mongodb .

Per impostazione predefinita non c'è controllo di accesso, chiunque può leggere e scrivere nel database.

La conchiglia Mongo

Il modo migliore per sperimentare MongoDB e iniziare a interagire con esso è eseguire mongo programma, che avvia la shell MongoDB.

Ora puoi inserire qualsiasi comando compreso da Mongo.

Crea un database

Quando inizi, Mongo crea un database chiamato test . Esegui db nella shell per dirti il ​​nome del database attivo

Per modificare il database, scrivi use newname e il newname il database verrà creato istantaneamente e la shell passerà a utilizzarlo.

Usa show databases per elencare i database disponibili:

Come puoi vedere, il something il database non è elencato, solo perché non è ancora presente alcuna raccolta. Creiamone uno.

Raccolte

In MongoDB, una raccolta è l'equivalente di una tabella di database SQL.

Puoi creare una raccolta nel database corrente utilizzando db.createCollection() comando. Il primo argomento è il nome del database e puoi passare un oggetto opzioni come secondo parametro.

Dopo averlo fatto, show databases elencherà il nuovo database e show collections elencherà la collezione.

Puoi anche creare una nuova collezione usandola come proprietà del db oggetto e chiamando insert() per aggiungere un oggetto alla collezione:

db.dogs.insert({ name: 'Roger' })

Elencare gli oggetti in una raccolta

Per mostrare gli oggetti aggiunti a una raccolta, usa find() metodo:

Come puoi vedere c'è un ulteriore _id proprietà per il record che abbiamo aggiunto. Questo viene generato automaticamente per noi da MongoDB.

Ora aggiungi altri cani:

db.dogs.insert({ name: 'Buck' })
db.dogs.insert({ name: 'Togo' })
db.dogs.insert({ name: 'Balto' })

Chiamando db.dogs.find() ci fornirà tutte le voci, mentre possiamo passare un parametro per filtrare e recuperare una voce specifica, ad esempio con db.dogs.find({name: 'Roger'}) :

Il find() restituisce un cursore su cui devi scorrere.

C'è un altro metodo che è utile quando sai che otterrai un solo record, che è findOne() , ed è usato allo stesso modo. Se più record corrispondono a una query, verrà restituito solo il primo.

Aggiornamento dei record

Per aggiornare un record puoi usare update() metodo su una raccolta:

Rimozione di record

Puoi rimuovere un record chiamando remove() metodo su una raccolta, passando un oggetto per aiutarlo a identificarlo:

Per rimuovere tutte le voci da una raccolta, passa un oggetto vuoto:

db.dogs.remove({})