Articles

Comment utiliser MongoDB avec Node.js

Le Bootcamp JavaScript Full-Stack 2021 est MAINTENANT OUVERT POUR LES INSCRIPTIONS!

Si vous n’êtes pas familier avec MongoDB, consultez notre guide sur ses bases et sur la façon de l’installer et de l’utiliser 🙂

Nous utiliserons le package npm officiel mongodb. Si vous avez déjà un nœud.projet js sur lequel vous travaillez, installez-le en utilisant

npm install mongodb

Si vous commencez à partir de zéro, créez un nouveau dossier avec votre terminal et exécutez npm init -y pour démarrer un nouveau nœud.projet js, puis exécutez la commande npm install mongodb.

Connexion à MongoDB

Vous avez besoin du package mongodb et vous en obtenez l’objet MongoClient.

const mongo = require('mongodb').MongoClient

Créez une URL vers le serveur MongoDB. Si vous utilisez MongoDB localement, l’URL sera quelque chose comme mongodb://localhost:27017, car 27017 est le port par défaut.

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

Utilisez ensuite la méthode mongo.connect() pour obtenir la référence au client d’instance MongoDB :

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

Vous pouvez maintenant sélectionner une base de données en utilisant la méthode client.db():

const db = client.db('kennel')

Créer et obtenir une collection

Vous pouvez obtenir une collection en utilisant la méthode db.collection(). Si la collection n’existe pas encore, elle est créée.

const collection = db.collection('dogs')

Insérer des données dans une collection un document

Ajouter à l’application.js la fonction suivante qui utilise la méthode insertOne() pour ajouter un objet dogs collection.

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

Vous pouvez ajouter plusieurs éléments en utilisant insertMany(), en passant un tableau comme premier paramètre:

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

Trouver tous les documents

Utilisez la méthode find() sur la collection pour obtenir tous les documents ajoutés à la collection:

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

Trouvez un document spécifique

Passez un objet à la méthode find() pour filtrer la collection en fonction de ce que vous devez récupérer:

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

Si vous savez que vous allez obtenir un élément, vous pouvez ignorer la conversion du curseur toArray() en appelant findOne():

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

Mettre à jour un document existant

Utilisez la méthode updateOne() pour mettre à jour un document :

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

Supprimer un document

Utilisez la méthode deleteOne() pour supprimer un document :

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

Fermeture de la connexion

Une fois les opérations terminées, vous pouvez appeler la méthode close() sur l’objet client:

client.close()

Utilisez des promesses ou asynchronisez / attendez

J’ai posté tous ces exemples en utilisant la syntaxe de rappel. Cette API prend également en charge les promesses (et l’asynchronisation/l’attente).

Par exemple, ce

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

Peut être utilisé avec des promesses:

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

ou async/await:

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

Téléchargez mon nœud gratuit.manuel js

Le Bootcamp JavaScript Full-Stack 2021 EST MAINTENANT OUVERT AUX INSCRIPTIONS JUSQU’À MARDI PROCHAIN! Ne manquez pas cette opportunité, inscrivez-vous DÈS AUJOURD’HUI!

Plus de tutoriels sur les nœuds :

  • Le nœud.liste des options js Runtime v8
  • Comment imprimer un canevas vers une URL de données
  • Comment utiliser MongoDB avec Node.js
  • Le Guide Pug
  • Installer une ancienne version d’un package npm
  • Comment déterminer si une date est aujourd’hui en JavaScript
  • Comment écrire un fichier CSV avec Node.js
  • Statistiques de fichier de nœud
  • Analyse JSON avec le nœud.js