Dans ce didacticiel, je vais vous montrer comment interagir avec une base de données MongoDB à partir de Node.js
Si vous n'êtes pas familier avecMongoDBconsultez notre guide sur ses bases et sur la façon de l'installer et de l'utiliser :)
Nous utiliserons le fonctionnairemongodb
npmpaquet. Si vous avez déjà un projet Node.js sur lequel vous travaillez, installez-le en utilisant
npm install mongodb
Si vous partez de zéro, créez un nouveau dossier avec votreTerminalet courirnpm init -y
pour démarrer un nouveau projet Node.js, puis exécutez lenpm install mongodb
commander.
Connexion à MongoDB
Vous avez besoin dumongodb
package 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 commemongodb://localhost:27017
, comme27017
est le port par défaut.
const url = 'mongodb://localhost:27017'
Ensuite, utilisez lemongo.connect()
méthode pour obtenir la référence au client de l'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 à l'aide duclient.db()
méthode:
const db = client.db('kennel')
Créer et obtenir une collection
Vous pouvez obtenir une collection en utilisant ledb.collection()
méthode. 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
Ajoutez à app.js la fonction suivante qui utilise leinsertOne()
méthode pour ajouter un objetdogs
collection.
collection.insertOne({name: 'Roger'}, (err, result) => {
})
Vous pouvez ajouter plusieurs éléments en utilisantinsertMany()
, en passant un tableau comme premier paramètre:
collection.insertMany([{name: 'Togo'}, {name: 'Syd'}], (err, result) => {
})
Retrouvez tous les documents
Utilisez lefind()
méthode sur la collection pour obtenir tous les documents ajoutés à la collection:
collection.find().toArray((err, items) => {
console.log(items)
})
Trouver un document spécifique
Passez un objet aufind()
méthode 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 ignorertoArray()
conversion du curseur en appelantfindOne()
:
collection.findOne({name: 'Togo'}, (err, item) => {
console.log(item)
})
Mettre à jour un document existant
Utilisez leupdateOne()
méthode pour mettre à jour un document:
collection.updateOne({name: 'Togo'}, {'$set': {'name': 'Togo2'}}, (err, item) => {
console.log(item)
})
Supprimer un document
Utilisez ledeleteOne()
méthode pour supprimer un document:
collection.deleteOne({name: 'Togo'}, (err, item) => {
console.log(item)
})
Fermer la connexion
Une fois que vous avez terminé les opérations, vous pouvez appeler leclose()
méthode sur l'objet client:
client.close()
Utiliser les promesses ou asynchroniser / attendre
J'ai posté tous ces exemples en utilisant lerappelersyntaxe. Cette API prend en chargepromesses(etasynchroniser / attendre) ainsi que.
Par exemple ceci
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 / wait:
const find = async () => {
try {
const item = await collection.findOne({name: 'Togo'})
} catch(err => {
console.error(err)
})
}
find()
Téléchargez mon gratuitManuel de Node.js
Plus de didacticiels sur les nœuds:
- Une introduction au gestionnaire de paquets npm
- Introduction à Node.js
- Requêtes HTTP utilisant Axios
- Où héberger une application Node.js
- Interagissez avec l'API Google Analytics à l'aide de Node.js
- Le lanceur de package npx Node
- Le guide package.json
- Où npm installe-t-il les packages?
- Comment mettre à jour Node.js
- Comment utiliser ou exécuter un package installé à l'aide de npm
- Le fichier package-lock.json
- Gestion des versions sémantiques à l'aide de npm
- Devez-vous valider le dossier node_modules dans Git?
- Mettez à jour toutes les dépendances de nœud vers leur dernière version
- Analyser JSON avec Node.js
- Rechercher la version installée d'un package npm
- Flux Node.js
- Installer une ancienne version d'un package npm
- Obtenir le dossier actuel dans Node
- Comment enregistrer un objet dans Node
- Exposer la fonctionnalité d'un fichier Node à l'aide d'export
- Différences entre Node et le navigateur
- Faire une requête HTTP POST à l'aide de Node
- Obtenir les données du corps de la requête HTTP à l'aide de Node
- Tampons de nœud
- Une brève histoire de Node.js
- Comment installer Node.js
- Quelle quantité de JavaScript devez-vous connaître pour utiliser Node?
- Comment utiliser le REPL Node.js
- Nœud, accepter les arguments de la ligne de commande
- Sortie vers la ligne de commande à l'aide de Node
- Accepter l'entrée de la ligne de commande dans Node
- Désinstaller les packages npm avec `npm uninstall`
- packages mondiaux ou locaux npm
- dépendances npm et devDependencies
- La boucle d'événements Node.js
- Comprendre process.nextTick ()
- Comprendre setImmediate ()
- L'émetteur d'événement de nœud
- Construire un serveur HTTP
- Faire des requêtes HTTP avec Node
- Le module Node fs
- Requêtes HTTP dans Node utilisant Axios
- Lire des fichiers avec Node
- Chemins de fichiers de noeud
- Écriture de fichiers avec Node
- Statistiques du fichier de nœud
- Utilisation des descripteurs de fichiers dans Node
- Travailler avec des dossiers dans Node
- Le module de chemin de nœud
- Le module Node http
- Utilisation de WebSockets avec Node.js
- Les bases de l'utilisation de MySQL et de Node
- Gestion des erreurs dans Node.js
- Le guide du carlin
- Comment lire les variables d'environnement à partir de Node.js
- Comment quitter un programme Node.js
- Le module Node OS
- Le module d'événements Node
- Node, la différence entre développement et production
- Comment vérifier si un fichier existe dans Node.js
- Comment créer un fichier vide dans Node.js
- Comment supprimer un fichier avec Node.js
- Comment obtenir la dernière date de mise à jour d'un fichier à l'aide de Node.js
- Comment déterminer si une date est aujourd'hui en JavaScript
- Comment écrire un objet JSON dans un fichier dans Node.js
- Pourquoi devriez-vous utiliser Node.js dans votre prochain projet?
- Exécutez un serveur Web à partir de n'importe quel dossier
- Comment utiliser MongoDB avec Node.js
- Utilisez Chrome DevTools pour déboguer une application Node.js
- Qu'est-ce que pnpm?
- Liste des options de Node.js Runtime v8
- Comment corriger l'erreur "Accès en écriture manquant" lors de l'utilisation de npm
- Comment activer les modules ES dans Node.js
- Comment générer un processus enfant avec Node.js
- Comment obtenir à la fois du corps analysé et du corps brut dans Express
- Comment gérer les téléchargements de fichiers dans Node.js
- Que sont les dépendances homologues dans un module Node?
- Comment écrire un fichier CSV avec Node.js
- Comment lire un fichier CSV avec Node.js
- Les modules Node Core
- Incrémenter plusieurs numéros de dossiers à la fois à l'aide de Node.js
- Comment imprimer un canevas sur une URL de données
- Comment créer et enregistrer une image avec Node.js et Canvas
- Comment télécharger une image à l'aide de Node.js
- Comment renommer en masse des fichiers dans Node.js
- Comment obtenir les noms de tous les fichiers d'un dossier dans Node
- Comment utiliser les promesses et attendre avec les fonctions basées sur le rappel de Node.js
- Comment tester un package npm localement
- Comment vérifier la version actuelle de Node.js au moment de l'exécution
- Comment utiliser Sequelize pour interagir avec PostgreSQL
- Servir une page HTML à l'aide de Node.js
- Comment résoudre l'erreur `util.pump n'est pas une fonction` dans Node.js