CoffeeScript - MongoDB
MongoDB est une base de données multiplateforme orientée document qui offre des performances élevées, une haute disponibilité et une évolutivité facile. MongoDB travaille sur le concept de collection et de document. Pour plus d'informations, lisez notre tutoriel MongoDB .
Dans ce chapitre, vous apprendrez à communiquer avec la base de données MongoDB à l'aide de CoffeeScript.
Installation
La base de données MongoDB peut être intégrée à CoffeeScript en utilisant le pilote Node.js 2.0 de MongoDB. Tout d'abord, vous devez installer MongoDB dans votre système, en vous référant au chapitre environnement de notre tutoriel MongoDB.
Après avoir installé MongoDB, parcourez avec succès son bin dossier (si vous n'avez pas défini le chemin) et démarrez le service MongoDB comme indiqué ci-dessous.
C:\Program Files\MongoDB\Server\3.2\bin> mongod
Enfin, installez le pilote MongoDB et ses dépendances en exécutant la commande NPM suivante dans l'invite de commande.
npm install mongodb --save
Connexion à MongoDB
Pour vous connecter à MongoDB, créez tout d'abord MongoClient en utilisant ceci, appelez le connect()fonction. Cette fonction accepte l'url et une fonction de rappel comme paramètres.
Le code CoffeeScript suivant montre comment se connecter au serveur MongoDB. Si le serveur MongoDB est en cours d'exécution dans votre système, ce programme établit une connexion avec le serveur.
#Requiring the Mongodb package
mongo = require 'mongodb'
#Creating a MongoClient object
MongoClient = mongo.MongoClient
#Preparing the URL
url = 'mongodb://localhost:27017/testdb'
#Connecting to the server
MongoClient.connect url, (err, db) ->
if err
console.log 'Unable to connect . Error:', err
else
console.log 'Connection established to', url
#Close connection
db.close()
return
Enregistrez le code ci-dessus dans un fichier avec un nom connect_db.coffeeet exécutez-le comme indiqué ci-dessous. Si la base de données est créée avec succès, elle donnera le message suivant
c:\> coffee connect_db.coffee
coffee connect_db.collection
Connection established to mongodb://localhost:27017/testdb
Créer une collection
Une collection dans MongoDB contient les documents que nous y stockons. Vous pouvez créer une collection en utilisant lecollection()fonction. Cette fonction accepte un argument de chaîne qui représente le nom de la collection que nous voulons créer.
Le code CoffeeScript suivant montre comment créer une collection dans MongoDB. En cas d'erreur, ils seront affichés sur la console.
#Requiring the Mongodb package
mongo = require 'mongodb'
#Creating a MongoClient object
MongoClient = mongo.MongoClient
#Preparing the URL
url = 'mongodb://localhost:27017/testdb'
#Connecting to the server
MongoClient.connect url, (err, db) ->
if err
console.log 'Unable to connect . Error:', err
else
console.log 'Connection established to', url
#Create collection
col = db.collection('My_collection')
console.log "Collection created successfully."
#Close connection
db.close()
return
Enregistrez le code ci-dessus dans un fichier avec un nom create_collection.coffeeet exécutez-le comme indiqué ci-dessous. Si la collection est créée avec succès, elle donnera le message suivant
c:/> coffee create_collection.coffee
Connection established to mongodb://localhost:27017/testdb
Collection created successfully.
Insérer des documents
Vous pouvez insérer des documents dans une collection de MongoDB dont vous avez besoin pour appeler une fonction nommée insert() en passant la liste des documents à insérer, comme paramètres.
Le code CoffeeScript suivant montre comment insérer des documents dans une collection nommée My_collection. En cas d'erreur, ils seront affichés sur la console.
#Sample JSON Documents
doc1 = {name: 'Ram', age: 26, city: 'Hyderabad'}
doc2 = {name: 'Rahim', age: 27, city: 'Banglore'}
doc3 = {name: 'Robert', age: 28, city: 'Mumbai'}
#Requiring the Mongodb package
mongo = require 'mongodb'
#Creating a MongoClient object
MongoClient = mongo.MongoClient
#Preparing the URL
url = 'mongodb://localhost:27017/testdb'
#Connecting to the server
MongoClient.connect url, (err, db) ->
if err
console.log 'Unable to connect . Error:', err
else
console.log 'Connection established to', url
#Creating collection
col = db.collection('My_collection')
#Inserting documents
col.insert [doc1,doc2,doc3], (err, result) ->
if err
console.log err
else
console.log "Documents inserted successfully"
#Close connection
db.close()
return
return
Enregistrez le code ci-dessus dans un fichier avec un nom insert_documents.coffeeet exécutez-le comme indiqué ci-dessous. Si les documents sont insérés avec succès, le message suivant s'affiche
c:/> coffee insert_documents.coffee
Connection established to mongodb://localhost:27017/testdb
Documents inserted successfully
Lecture de documents
Vous pouvez récupérer les documents stockés dans MongoDB à l'aide d'une fonction nommée find(). Le code CoffeeScript suivant montre comment récupérer les enregistrements stockés dans MongoDB.
#Requiring the Mongodb package
mongo = require 'mongodb'
#Creating a MongoClient object
MongoClient = mongo.MongoClient
#Preparing the URL
url = 'mongodb://localhost:27017/testdb'
#Connecting to the server
MongoClient.connect url, (err, db) ->
if err
console.log 'Unable to connect . Error:', err
else
console.log 'Connection established to', url
#Creating collection object
col = db.collection('My_collection')
#Inserting Documents
col.find({name: 'Ram'}).toArray (err, result)->
if err
console.log err
else
console.log 'Found:', result
#Closing connection
db.close()
return
return
Enregistrez le code ci-dessus dans un fichier avec un nom read_documents.coffeeet exécutez-le comme indiqué ci-dessous. Ce programme récupère le document requis dans la collection spécifiée et l'affiche comme indiqué ci-dessous.
C:\> coffee read_documents.coffee
Connection established to mongodb://localhost:27017/testdb
Found: [ { _id: 56e269c10478809c3009ad1e,
name: 'Ram',
age: 26,
city: 'Hyderabad' } ]
Vous pouvez également lire tous les documents existant dans une collection particulière en exécutant le find() fonction sans lui transmettre d'arguments comme indiqué ci-dessous.
#Requiring the Mongodb package
mongo = require 'mongodb'
#Creating a MongoClient object
MongoClient = mongo.MongoClient
#Preparing the URL
url = 'mongodb://localhost:27017/testdb'
#Connecting to the server
MongoClient.connect url, (err, db) ->
if err
console.log 'Unable to connect . Error:', err
else
console.log 'Connection established to', url
#Creating collection object
col = db.collection('My_collection')
#Reading all Documents
col.find().toArray (err, result)->
if err
console.log err
else
console.log 'Found:', result
#Closing connection
db.close()
return
return
Enregistrez le code ci-dessus dans un fichier avec un nom read_all_documents.coffeeet exécutez-le comme indiqué ci-dessous. ce programme récupère tous les documents de la collection spécifiée et l'affiche comme indiqué ci-dessous.
C:\> coffee read_all_documents.coffee
Connection established to mongodb://localhost:27017/testdb
Found: [ { _id: 56e2c5e27e0bad741a68c03e,
name: 'Ram',
age: 26,
city: 'Hyderabad' },
{ _id: 56e2c5e27e0bad741a68c03f,
name: 'Rahim',
age: 27,
city: 'Banglore' },
{ _id: 56e2c5e27e0bad741a68c040,
name: 'Robert',
age: 28,
city: 'Mumbai' } ]
Mise à jour des documents
Vous pouvez mettre à jour les documents stockés dans MongoDB à l'aide d'une fonction nommée update(). Le code CoffeeScript suivant montre comment mettre à jour les enregistrements stockés dans MongoDB.
#Get mongo client object
MongoClient = require('mongodb').MongoClient
#Connecting to mongodb
url = 'mongodb://localhost:27017/testdb'
MongoClient.connect url, (err, db) ->
if err
console.log 'Unable to connect . Error:', err
else
console.log 'Connection established to', url
#Creating collection
col = db.collection('My_collection')
#Reading Data
col.update {name:'Ram'},{$set:{city:'Delhi'}},(err, result)->
if err
console.log err
else
console.log "Document updated"
#Closing connection
db.close()
return
return
Ce programme met à jour la ville de l'employé nommé Ram d'Hyderabad à Delhi.
Enregistrez le code ci-dessus dans un fichier avec un nom update_documents.coffeeet exécutez-le comme indiqué ci-dessous. ce programme récupère les documents de la collection spécifiée et les affiche comme indiqué ci-dessous.
C:\> coffee update_documents.coffee
Connection established to mongodb://localhost:27017/testdb
Document updated
Après la mise à jour, si vous exécutez le read_documents.coffee programme, vous observerez que le nom de la ville de la personne nommée Ram est mis à jour à partir de Hyderabad à Delhi.
C:\> coffee Read_all_documents.coffee
Connection established to mongodb://localhost:27017/testdb
Found: [ { _id: 56e2c5e27e0bad741a68c03e,
name: 'Ram',
age: 26,
city: 'Delhi' },
{ _id: 56e2c5e27e0bad741a68c03f,
name: 'Rahim',
age: 27,
city: 'Banglore' },
{ _id: 56e2c5e27e0bad741a68c040,
name: 'Robert',
age: 28,
city: 'Mumbai' } ]
Supprimer des documents
Vous pouvez supprimer tous les documents de la collection à l'aide du remove()fonction. Le code CoffeeScript suivant montre comment supprimer tous les enregistrements stockés dans MongoDB.
#Get mongo client object
MongoClient = require('mongodb').MongoClient
#Connecting to mongodb
url = 'mongodb://localhost:27017/testdb'
MongoClient.connect url, (err, db) ->
if err
console.log 'Unable to connect . Error:', err
else
console.log 'Connection established to', url
#Creating collection
col = db.collection('My_collection')
#Deleting Data
col.remove()
console.log "Document deleted"
#Closing connection
db.close()
return
Enregistrez le code ci-dessus dans un fichier avec un nom delete_documents.coffeeet exécutez-le comme indiqué ci-dessous. ce programme supprime tous les documents de la collection spécifiée affichant les messages suivants.
C:\> coffee delete_documents.coffee
Connection established to mongodb://localhost:27017/testdb
Document deleted
Après la suppression, si vous exécutez le read_documents.coffee programme, vous obtiendrez une collection vide comme indiqué ci-dessous.
C:\> coffee Read_all_documents.coffee
Connection established to mongodb://localhost:27017/testdb
Found: [ ]