Node.js MongoDB Tutoriel avec exemples
La quasi-totalitรฉ des applications web modernes disposent d'un systรจme de stockage de donnรฉes cรดtรฉ serveur. Prenons l'exemple d'une boutique en ligne.ping Dans cette application, des donnรฉes telles que le prix d'un article seraient stockรฉes dans la base de donnรฉes.
Le framework Node js peut fonctionner avec des bases de donnรฉes ร la fois relationnelles (telles que Oracle et MS SQL Server) et les bases de donnรฉes non relationnelles (telles que MongoDB). Dans ce didacticiel, nous verrons comment utiliser les bases de donnรฉes ร partir des applications Node js.
Bases de donnรฉes Node.js et NoSQL
Au fil des annรฉes, les bases de donnรฉes NoSQL telles que MongoDB et pour MySQL sont devenus trรจs populaires en tant que bases de donnรฉes pour le stockage de donnรฉes. La capacitรฉ de ces bases de donnรฉes ร stocker tout type de contenu et particuliรจrement dans tout type de format est ce qui fait la renommรฉe de ces bases de donnรฉes.
Node.js a la capacitรฉ de fonctionner avec les deux MySQL et MongoDB comme bases de donnรฉes. Pour utiliser l'une ou l'autre de ces bases de donnรฉes, vous devez tรฉlรฉcharger et utiliser les modules requis ร l'aide du gestionnaire de packages Node.
Pour MySQL, le module requis s'appelle ยซ mysql ยป et pour l'utiliser MongoDB le module requis ร installer est ยซ Mongoose ยป.
Avec ces modules, vous pouvez effectuer les opรฉrations suivantes dans Node.js
- Gรฉrer le pool de connexions โ C'est ici que vous pouvez spรฉcifier le nombre de MySQL connexions ร la base de donnรฉes qui doivent รชtre maintenues et enregistrรฉes par Node.js.
- Crรฉez et fermez une connexion ร une base de donnรฉes. Dans les deux cas, vous pouvez fournir une fonction de rappel qui peut รชtre appelรฉe chaque fois que les mรฉthodes de connexion ยซ crรฉer ยป et ยซ fermer ยป sont exรฉcutรฉes.
- Des requรชtes peuvent รชtre exรฉcutรฉes pour obtenir des donnรฉes des bases de donnรฉes respectives afin de rรฉcupรฉrer des donnรฉes.
- La manipulation des donnรฉes, telle que l'insertion de donnรฉes, la suppression et la mise ร jour de donnรฉes, peut รฉgalement รชtre rรฉalisรฉe avec ces modules.
Pour les sujets restants, nous verrons comment nous pouvons travailler avec MongoDB bases de donnรฉes au sein Node.js.
L'utilisation de MongoDB et Node.js
Comme discutรฉ dans le sujet prรฉcรฉdent, MongoDB est l'une des bases de donnรฉes les plus populaires utilisรฉes avec Node.js.
Au cours de ce chapitre, nous verrons
Comment pouvons-nous รฉtablir des liens avec un MongoDB base de donnรฉes
Comment pouvons-nous effectuer les opรฉrations normales de lecture des donnรฉes d'une base de donnรฉes ainsi que l'insertion, la suppression et la mise ร jour des enregistrements dans un MongoDB base de donnรฉes.
Pour les besoins de ce chapitre, supposons que nous ayons le ci-dessous MongoDB donnรฉes en place.
Nom de la base de donnรฉes : EmployeeDB
Nom de la collection : Employรฉ
Documents
{
{Employeeid : 1, Employee Name : Guru99},
{Employeeid : 2, Employee Name : Joe},
{Employeeid : 3, Employee Name : Martin},
}
- Installation des modules NPM
Vous avez besoin d'un pilote pour accรฉder ร Mongo depuis une application Node. Il existe un certain nombre de pilotes Mongo disponibles, mais MongoDB est parmi les plus populaires. Pour installer le MongoDB module, exรฉcutez la commande ci-dessous
npm installer mongodb
- Crรฉation et fermeture d'une connexion ร un MongoDB base de donnรฉes. L'extrait de code ci-dessous montre comment crรฉer et fermer une connexion ร un MongoDB base de donnรฉes.
Code Explication:
- La premiรจre รฉtape consiste ร inclure le module mangouste, ce qui se fait via la fonction require. Une fois ce module en place, nous pouvons utiliser les fonctions nรฉcessaires disponibles dans ce module pour crรฉer des connexions ร la base de donnรฉes.
- Ensuite, nous spรฉcifions notre chaรฎne de connexion ร la base de donnรฉes. Dans la chaรฎne de connexion, 3 valeurs clรฉs sont transmises.
- Le premier est ยซ mongodb ยป qui prรฉcise que nous nous connectons ร une base de donnรฉes mongoDB.
- Le suivant est ยซ localhost ยป, ce qui signifie que nous nous connectons ร une base de donnรฉes sur la machine locale.
- Le suivant est ยซ EmployeeDB ยป, qui est le nom de la base de donnรฉes dรฉfinie dans notre MongoDB base de donnรฉes.
- L'รฉtape suivante consiste ร se connecter ร notre base de donnรฉes. La fonction de connexion prend en paramรจtre notre URL Elle offre la possibilitรฉ de spรฉcifier une fonction de rappel. Celle-ci sera appelรฉe lors de l'รฉtablissement de la connexion ร la base de donnรฉes. Cela nous permet de savoir si la connexion a rรฉussi ou non.
- Dans la fonction, nous รฉcrivons la chaรฎne ยซ Connexion รฉtablie ยป sur la console pour indiquer qu'une connexion rรฉussie a รฉtรฉ crรฉรฉe.
- Enfin, nous fermons la connexion ร l'aide de l'instruction db.close.
Si le code ci-dessus est exรฉcutรฉ correctement, la chaรฎne ยซ Connectรฉ ยป sera รฉcrite sur la console comme indiquรฉ ci-dessous.
- Interrogation de donnรฉes dans un MongoDB base de donnรฉes - En utilisant le MongoDB pilote, nous pouvons รฉgalement rรฉcupรฉrer des donnรฉes du MongoDB base de donnรฉes. La section ci-dessous montrera comment nous pouvons utiliser le pilote pour rรฉcupรฉrer tous les documents de notre collection d'employรฉs. dans notre base de donnรฉes EmployeeDB. Voici la collection de notre MongoDB base de donnรฉes, qui contient tous les documents relatifs aux employรฉs. Chaque document a un identifiant d'objet, un nom d'employรฉ et un identifiant d'employรฉ pour dรฉfinir les valeurs du document.
var MongoClient = require('mongodb').MongoClient;
var url = 'mongodb://localhost/EmployeeDB';
MongoClient.connect(url, function(err, db) {
var cursor = db.collection('Employee').find();
cursor.each(function(err, doc) {
console.log(doc);
});
});
Code Explication:
- Dans la premiรจre รฉtape, nous crรฉons un curseur (un curseur est un pointeur qui est utilisรฉ pour pointer vers les diffรฉrents enregistrements extraits d'une base de donnรฉes. Le curseur est ensuite utilisรฉ pour parcourir les diffรฉrents enregistrements de la base de donnรฉes. Ici, nous dรฉfinissons un nom de variable appelรฉ curseur qui sera utilisรฉ pour stocker le pointeur vers les enregistrements extraits de la base de donnรฉes.) qui pointe vers les enregistrements extraits de la collection MongoDb. Nous avons รฉgalement la possibilitรฉ de spรฉcifier la collection ยซ Employee ยป ร partir de laquelle extraire les enregistrements. La fonction find() est utilisรฉe pour spรฉcifier que nous voulons rรฉcupรฉrer tous les documents de la collection MongoDb. MongoDB .
- Nous parcourons maintenant notre curseur et pour chaque document dans le curseur, nous allons exรฉcuter une fonction.
- Notre fonction va simplement imprimer le contenu de chaque document sur la console.
Remarque: - Il est รฉgalement possible d'extraire un enregistrement spรฉcifique d'une base de donnรฉes. Pour ce faire, il suffit de spรฉcifier la condition de recherche dans la fonction `find()`. Par exemple, supposons que vous souhaitiez extraire l'enregistrement contenant le nom de l'employรฉ : Guru99, alors cette affirmation peut s'รฉcrire comme suit
var cursor=db.collection('Employee').find({EmployeeName: "guru99"})
Si le code ci-dessus est exรฉcutรฉ avec succรจs, la sortie suivante sera affichรฉe dans votre console.
Sortie :
De la sortie,
- Vous pourrez voir clairement que tous les documents de la collection sont rรฉcupรฉrรฉs. Ceci est possible en utilisant la mรฉthode find() de la connexion mongoDB (db) et en parcourant tous les documents ร l'aide du curseur.
- Insรฉrer des documents dans une collection โ Les documents peuvent รชtre insรฉrรฉs dans une collection ร lโaide de la mรฉthode insertOne fournie par le MongoDB bibliothรจque. L'extrait de code ci-dessous montre comment nous pouvons insรฉrer un document dans une collection mongoDB.
var MongoClient = require('mongodb').MongoClient;
var url = 'mongodb://localhost/EmployeeDB';
MongoClient.connect(url, function(err, db) {
db.collection('Employee').insertOne({
Employeeid: 4,
EmployeeName: "NewEmployee"
});
});
Code Explication:
- Ici, nous utilisons la mรฉthode insertOne du MongoDB bibliothรจque pour insรฉrer un document dans la collection Employee.
- Nous spรฉcifions les dรฉtails du document sur ce qui doit รชtre insรฉrรฉ dans la collection Employee.
Si vous vรฉrifiez maintenant le contenu de votre MongoDB base de donnรฉes, vous trouverez l'enregistrement avec Employeeid de 4 et EmployeeName de ยซ NewEmployee ยป insรฉrรฉ dans la collection Employee.
ร noter: La console n'affichera aucune sortie car l'enregistrement est en cours d'insertion dans la base de donnรฉes et aucune sortie ne peut รชtre affichรฉe ici.
Pour vรฉrifier que les donnรฉes ont รฉtรฉ correctement insรฉrรฉes dans la base de donnรฉes, vous devez exรฉcuter les commandes suivantes dans MongoDB
- Utiliser EmployeeDB
- db.Employee.find({Employeeid :4 })
La premiรจre instruction garantit que vous รชtes connectรฉ ร la base de donnรฉes EmployeeDb. La deuxiรจme instruction recherche l'enregistrement dont l'identifiant d'employรฉ est 4.
- Mise ร jour de documents dans une collection โ Les documents peuvent รชtre mis ร jour dans une collection en utilisant la mรฉthode updateOne fournie par le MongoDB bibliothรจque. L'extrait de code ci-dessous montre comment mettre ร jour un document dans une collection mongoDB.
var MongoClient = require('mongodb').MongoClient;
var url = 'mongodb://localhost/EmployeeDB';
MongoClient.connect(url, function(err, db) {
db.collection('Employee').updateOne({
"EmployeeName": "NewEmployee"
}, {
$set: {
"EmployeeName": "Mohan"
}
});
});
Code Explication:
- Nous utilisons ici la mรฉthode ยซ updateOne ยป du MongoDB bibliothรจque, qui est utilisรฉe pour mettre ร jour un document dans une collection mongoDB.
- Nous prรฉcisons les critรจres de recherche selon lesquels le document doit รชtre mis ร jour. Dans notre cas, nous voulons trouver le document dont le EmployeeName est ยซ NewEmployee ยป.
- Nous souhaitons ensuite dรฉfinir la valeur du EmployeeName du document de ยซ NewEmployee ยป ร ยซ Mohan ยป.
Si vous vรฉrifiez maintenant le contenu de votre MongoDB base de donnรฉes, vous trouverez l'enregistrement avec Employeeid de 4 et EmployeeName de ยซ Mohan ยป mis ร jour dans la collection Employee.
Pour vรฉrifier que les donnรฉes ont รฉtรฉ correctement mises ร jour dans la base de donnรฉes, vous devez exรฉcuter les commandes suivantes dans MongoDB
- Utiliser EmployeeDB
- db.Employee.find({Employeeid :4 })
La premiรจre instruction garantit que vous รชtes connectรฉ ร la base de donnรฉes EmployeeDb. La deuxiรจme instruction recherche l'enregistrement dont l'identifiant d'employรฉ est 4.
- Supprimer des documents dans une collection โ Les documents peuvent รชtre supprimรฉs dans une collection en utilisant la mรฉthode ยซ deleteOne ยป fournie par le MongoDB bibliothรจque. L'extrait de code ci-dessous montre comment supprimer un document dans une collection mongoDB.
var MongoClient = require('mongodb').MongoClient;
var url = 'mongodb://localhost/EmployeeDB';
MongoClient.connect(url, function(err, db) {
db.collection('Employee').deleteOne(
{
"EmployeeName": "Mohan"
}
);
});
Code Explication:
- Nous utilisons ici la mรฉthode ยซ deleteOne ยป du MongoDB bibliothรจque, qui est utilisรฉe pour supprimer un document dans une collection mongoDB.
- Nous prรฉcisons les critรจres de recherche selon lesquels le document doit รชtre supprimรฉ. Dans notre cas, nous voulons trouver le document qui a le EmployeeName de ยซ Mohan ยป et supprimer ce document.
Si vous vรฉrifiez maintenant le contenu de votre MongoDB base de donnรฉes, vous trouverez l'enregistrement avec Employeeid de 4 et EmployeeName de ยซ Mohan ยป supprimรฉ de la collection Employee.
Pour vรฉrifier que les donnรฉes ont รฉtรฉ correctement mises ร jour dans la base de donnรฉes, vous devez exรฉcuter les commandes suivantes dans MongoDB
- Utiliser EmployeeDB
- db.Employee.find()
La premiรจre instruction garantit que vous รชtes connectรฉ ร la base de donnรฉes EmployeeDb. La deuxiรจme instruction recherche et affiche tous les enregistrements de la collection des employรฉs. Ici, vous pouvez voir si l'enregistrement a รฉtรฉ supprimรฉ ou non.
Comment crรฉer une application Node Express avec MongoDB pour stocker et diffuser du contenu
Construire une application avec une combinaison d'utilisation d'Express et MongoDB est assez courant de nos jours.
Lorsque vous travaillez avec Javascรฉnario applications basรฉes sur le Web, on parlera normalement ici du terme pile MEAN.
- Le terme pile MEAN fait rรฉfรฉrence ร un ensemble de JavaTechnologies basรฉes sur des scripts utilisรฉes pour dรฉvelopper des applications Web.
- MOYENNE est un acronyme pour MongoDB, ExpressJS, AngulaireJS, et Node.js.
Par consรฉquent, il est toujours bon de comprendre comment Node.js et MongoDB travailler ensemble pour fournir des applications qui interagissent avec les bases de donnรฉes back-end.
Regardons un exemple simple de la faรงon dont nous pouvons utiliser ยซ express ยป et ยซMongoDB" ensemble. Notre exemple utilisera la mรชme collection Employee dans le MongoDB Base de donnรฉes EmployeeDB.
Nous allons maintenant intรฉgrer Express pour afficher les donnรฉes sur notre page web lorsqu'elles seront demandรฉes par l'utilisateur. Lorsque notre application s'exรฉcute sur Node.js, il sera peut-รชtre nรฉcessaire d'accรฉder ร l'URL. URL http://localhost:3000/Employeeid.
Lorsque la page est lancรฉe, tous les identifiants d'employรฉ de la collection Employรฉ seront affichรฉs. Voyons donc l'extrait de code dans les sections qui nous permettront d'y parvenir.
รtape 1) Dรฉfinissez toutes les bibliothรจques qui doivent รชtre utilisรฉes dans notre application, qui dans notre cas est ร la fois la MongoDB et bibliothรจque express.
Code Explication:
- Nous dรฉfinissons notre bibliothรจque 'express', qui sera utilisรฉe dans notre application.
- Nous dรฉfinissons notre 'MongoDB', qui sera utilisรฉe dans notre application pour se connecter ร notre MongoDB base de donnรฉes.
- Nous dรฉfinissons ici le URL de notre base de donnรฉes ร laquelle se connecter.
- Enfin, nous dรฉfinissons une chaรฎne qui sera utilisรฉe pour stocker notre collection d'identifiants d'employรฉ qui devront รชtre affichรฉs ultรฉrieurement dans le navigateur.
รtape 2) Dans cette รฉtape, nous allons maintenant rรฉcupรฉrer tous les enregistrements de notre collection ยซ Employรฉ ยป et travailler avec eux en consรฉquence.
Code Explication:
- Nous crรฉons un itinรฉraire vers notre application appelรฉ ยซ Employeeid ยป. Ainsi, chaque fois que quelqu'un accรจde ร http://localhost:3000/Employeeid de notre application, l'extrait de code dรฉfini pour cette route sera exรฉcutรฉ.
- Ici, nous obtenons tous les enregistrements de notre collection ยซ Employรฉ ยป via la commande db.collection('Employee').find(). Nous attribuons ensuite cette collection ร une variable appelรฉe curseur. Grรขce ร cette variable curseur, nous pourrons parcourir tous les enregistrements de la collection.
- Nous utilisons maintenant la fonction curseur.each() pour parcourir tous les enregistrements de notre collection. Pour chaque enregistrement, nous allons dรฉfinir un extrait de code sur ce qu'il faut faire lors de l'accรจs ร chaque enregistrement.
- Enfin, on voit que si l'enregistrement retournรฉ n'est pas nul, alors on prend le salariรฉ via la commande ยซ item.Employeeid ยป. Le reste du code consiste simplement ร construire un code HTML appropriรฉ qui permettra ร nos rรฉsultats de s'afficher correctement dans le navigateur.
รtape 3) Dans cette รฉtape, nous allons envoyer notre sortie vers la page Web et faire รฉcouter notre application sur un port particulier.
Code Explication:
- Ici, nous envoyons l'intรฉgralitรฉ du contenu qui a รฉtรฉ construit ร l'รฉtape prรฉcรฉdente vers notre page Web. Le paramรจtre 'res' nous permet d'envoyer du contenu ร notre page Web en rรฉponse.
- Nous faisons รฉcouter lโintรฉgralitรฉ de notre application Node.js sur le port 3000.
Sortie :
De la sortie,
- Cela montre clairement que tous les identifiants d'employรฉ de la collection Employee ont รฉtรฉ rรฉcupรฉrรฉs. C'est parce que nous utilisons le MongoDB chauffeur pour se connecter ร la base de donnรฉes et rรฉcupรฉrer tous les enregistrements des employรฉs, puis utiliser ยซ express ยป pour afficher les enregistrements.
Voici le code pour votre rรฉfรฉrence
var express = require('express');
var app = express();
var MongoClient = require('mongodb').MongoClient;
var url = 'mongodb://localhost/EmployeeDB';
var str = "";
app.route('/Employeeid').get(function(req, res)
{
MongoClient.connect(url, function(err, db) {
var cursor = db.collection('Employee').find();
//noinspection JSDeprecatedSymbols
cursor.each(function(err, item) {
if (item != null) {
str = str + " Employee id " + item.Employeeid + "</br>";
}
});
res.send(str);
db.close();
});
});
var server = app.listen(3000, function() {});
ร noter: curseur.each peut-รชtre obsolรจte en fonction de la version de votre MongoDB conducteur. Vous pouvez ajouter //noinspection JSDeprecatedSymbols avant curseur.each pour contourner le problรจme. Vous pouvez รฉgalement utiliser forEach. Vous trouverez ci-dessous l'exemple de code utilisant forEach
var express = require('express');
var app = express();
var MongoClient = require('mongodb').MongoClient;
var url = 'mongodb://localhost/EmployeeDB';
var str = "";
app.route('/Employeeid').get(function(req, res) {
MongoClient.connect(url, function(err, db) {
var collection = db.collection('Employee');
var cursor = collection.find({});
str = "";
cursor.forEach(function(item) {
if (item != null) {
str = str + " Employee id " + item.Employeeid + "</br>";
}
}, function(err) {
res.send(err);
db.close();
}
);
});
});
var server = app.listen(8080, function() {});
Rรฉsumรฉ
- Node.js est utilisรฉ conjointement avec NoSQL bases de donnรฉes pour crรฉer de nombreuses applications Web modernes. Certaines des bases de donnรฉes courantes utilisรฉes sont MySQL et MongoDB.
- L'un des modules courants utilisรฉs pour travailler avec MongoDB bases de donnรฉes est un module appelรฉ 'MongoDB.' Ce module est installรฉ via le gestionnaire de packages Node.
- Avec MongoDB module, il est possible de rechercher des enregistrements dans une collection et d'effectuer les opรฉrations normales de mise ร jour, de suppression et d'insertion.
- Enfin, l'une des pratiques modernes consiste ร utiliser le cadre express avec MongoDB pour fournir des applications modernes. Le framework Express peut utiliser les donnรฉes renvoyรฉes par le MongoDB pilote et afficher les donnรฉes ร lโutilisateur dans la page Web en consรฉquence.











