Articles

Come usare MongoDB con il nodo.js

Il Bootcamp Full-Stack JavaScript del 2021 è ORA APERTO PER LE ISCRIZIONI!

Se non hai familiarità con MongoDB controlla la nostra guida sulle sue basi e su come installarlo e usarlo:)

Useremo il pacchetto ufficialemongodb npm. Se hai già un Nodo.progetto js su cui stai lavorando, installalo usando

npm install mongodb

Se inizi da zero, crea una nuova cartella con il tuo terminale ed esegui npm init -y per avviare un nuovo Nodo.progetto js, quindi eseguire il comandonpm install mongodb.

Connettendosi a MongoDB

È necessario il pacchettomongodb e si ottiene l’oggetto MongoClient da esso.

const mongo = require('mongodb').MongoClient

Crea un URL per il server MongoDB. Se usi MongoDB localmente, l’URL sarà qualcosa come mongodb://localhost:27017, poiché 27017 è la porta predefinita.

const url = 'mongodb://localhost:27017'

Quindi utilizzare il mongo.connect() metodo per ottenere il riferimento al MongoDB istanza del client:

mongo.connect(url, { useNewUrlParser: true, useUnifiedTopology: true }, (err, client) => { if (err) { console.error(err) return } //...})

Ora è possibile selezionare un database utilizzando il client.db() metodo:

const db = client.db('kennel')

Crea e ottieni una raccolta

Puoi ottenere una raccolta usando il metodo db.collection(). Se la raccolta non esiste ancora, viene creata.

const collection = db.collection('dogs')

Inserire i dati in una raccolta di un documento

Aggiungere alla app.js la seguente funzione che utilizza ilinsertOne() metodo per aggiungere un oggetto dogs raccolta.

collection.insertOne({name: 'Roger'}, (err, result) => {})

È possibile aggiungere più elementi utilizzando insertMany(), il passaggio di un array come primo parametro:

collection.insertMany(, (err, result) => {})

Trovare tutti i documenti

Uso find() metodo di raccolta per ottenere tutti i documenti aggiunti alla collezione:

collection.find().toArray((err, items) => { console.log(items)})

Trovare un documento specifico

Passare un oggetto per il find() metodo per filtrare la raccolta sulla base di che cosa avete bisogno per recuperare:

collection.find({name: 'Togo'}).toArray((err, items) => { console.log(items)})

Se si sa che si sta per ottenere un elemento, si può saltare il toArray() conversione del cursore chiamando findOne():

collection.findOne({name: 'Togo'}, (err, item) => { console.log(item)})

Aggiornamento di un documento esistente

Uso updateOne() metodo per aggiornare un documento:

collection.updateOne({name: 'Togo'}, {'$set': {'name': 'Togo2'}}, (err, item) => { console.log(item)})

Eliminare un documento

Uso deleteOne() metodo per eliminare un documento:

collection.deleteOne({name: 'Togo'}, (err, item) => { console.log(item)})

di Chiudere la connessione

una Volta che hai finito con le operazioni che è possibile chiamare il close() metodo sull’oggetto client:

client.close()

Usa promises o async/await

Ho pubblicato tutti quegli esempi usando la sintassi di callback. Questa API supporta anche le promesse (e async / await).

Per esempio,

collection.findOne({name: 'Togo'}, (err, item) => { console.log(item)})

Può essere utilizzato con una promessa:

collection.findOne({name: 'Togo'}) .then(item => { console.log(item) }) .catch(err => { console.error(err) })

o async/await:

const find = async () => { try { const item = await collection.findOne({name: 'Togo'}) } catch(err => { console.error(err) })}find()

Scaricare il mio libero Nodo.js Handbook

Il Bootcamp Full-Stack JavaScript 2021 È ORA APERTO PER LE ISCRIZIONI FINO A MARTEDÌ PROSSIMO! Non perdere questa occasione, iscriviti OGGI!

Altri tutorial nodo:

  • Il nodo.js Runtime v8 options list
  • Come stampare una tela su un URL di dati
  • Come usare MongoDB con il nodo.js
  • La Guida Pug
  • Installa una versione precedente di un pacchetto npm
  • Come determinare se una data è oggi in JavaScript
  • Come scrivere un file CSV con Node.js
  • Statistiche del file nodo
  • Analisi di JSON con il nodo.js