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: [ ]