CoffeeScript - MongoDB

MongoDB es una base de datos multiplataforma orientada a documentos que proporciona alto rendimiento, alta disponibilidad y fácil escalabilidad. MongoDB trabaja en el concepto de colección y documento. Para obtener más información, lea nuestro tutorial de MongoDB .

En este capítulo, aprenderá a comunicarse con la base de datos MongoDB utilizando CoffeeScript.

Instalación

La base de datos MongoDB se puede integrar con CoffeeScript usando el controlador Node.js 2.0 de MongoDB. En primer lugar, debe instalar MongoDB en su sistema, consultando el capítulo de entorno de nuestro tutorial de MongoDB.

Después de instalar MongoDB, navegue correctamente a través de su bin carpeta (si no ha establecido la ruta) e inicie el servicio MongoDB como se muestra a continuación.

C:\Program Files\MongoDB\Server\3.2\bin> mongod

Finalmente, instale el controlador MongoDB y sus dependencias ejecutando el siguiente comando NPM en el símbolo del sistema.

npm install mongodb --save

Conexión a MongoDB

Para conectarse a MongoDB, primero cree MongoClient usando esto, invoque el connect()función. Esta función acepta url y una función de devolución de llamada como parámetros.

El siguiente código CoffeeScript muestra cómo conectarse al servidor MongoDB. Si el servidor MongoDB se está ejecutando en su sistema, este programa establece una conexión con el servidor.

#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

Guarde el código anterior en un archivo con nombre connect_db.coffeey ejecútelo como se muestra a continuación. Si la base de datos se crea correctamente, dará el siguiente mensaje

c:\> coffee connect_db.coffee
coffee connect_db.collection
Connection established to mongodb://localhost:27017/testdb

Crear una colección

Una colección en MongoDB contiene los documentos que almacenamos en ella. Puede crear una colección utilizando elcollection()función. Esta función acepta un argumento de cadena que representa el nombre de la colección que queremos crear.

El siguiente código de CoffeeScript muestra cómo crear una colección en MongoDB. En caso de errores, se mostrarán en la consola.

#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

Guarde el código anterior en un archivo con nombre create_collection.coffeey ejecútelo como se muestra a continuación. Si la colección se crea correctamente, dará el siguiente mensaje

c:/> coffee create_collection.coffee
Connection established to mongodb://localhost:27017/testdb
Collection created successfully.

Insertar documentos

Puede insertar documentos en una colección en MongoDB, necesita invocar una función llamada insert() pasando la lista de documentos que es necesario insertar, como parámetros.

El siguiente código CoffeeScript muestra cómo insertar documentos en una colección denominada My_collection. En caso de errores, se mostrarán en la consola.

#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

Guarde el código anterior en un archivo con nombre insert_documents.coffeey ejecútelo como se muestra a continuación. Si los documentos se insertan correctamente, aparece el siguiente mensaje

c:/> coffee insert_documents.coffee
Connection established to mongodb://localhost:27017/testdb
Documents inserted successfully

Leer documentos

Puede recuperar los documentos que están almacenados en MongoDB usando una función llamada find(). El siguiente código de CoffeeScript muestra cómo recuperar los registros que están almacenados en 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

Guarde el código anterior en un archivo con nombre read_documents.coffeey ejecútelo como se muestra a continuación. Este programa recupera el documento requerido en la colección especificada y lo muestra como se muestra a continuación.

C:\> coffee read_documents.coffee
Connection established to mongodb://localhost:27017/testdb
Found: [ { _id: 56e269c10478809c3009ad1e,
    name: 'Ram',
    age: 26,
    city: 'Hyderabad' } ]

También puede leer todos los documentos existentes en una colección en particular ejecutando el find() funciona sin pasarle ningún argumento como se muestra a continuación.

#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

Guarde el código anterior en un archivo con nombre read_all_documents.coffeey ejecútelo como se muestra a continuación. este programa recupera todos los documentos de la colección especificada y los muestra como se muestra a continuación.

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' } ]

Actualización de documentos

Puede actualizar los documentos que están almacenados en MongoDB usando una función llamada update(). El siguiente código de CoffeeScript muestra cómo actualizar los registros almacenados en 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

Este programa actualiza la ciudad del empleado llamado Ram de Hyderabad a Delhi.

Guarde el código anterior en un archivo con nombre update_documents.coffeey ejecútelo como se muestra a continuación. este programa recupera los documentos de la colección especificada y los muestra como se muestra a continuación.

C:\> coffee update_documents.coffee
Connection established to mongodb://localhost:27017/testdb
Document updated

Después de la actualización, si ejecuta el read_documents.coffee programa, luego observará que el nombre de la ciudad de la persona llamada Ram se actualiza desde Hyderabad a 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' } ]

Eliminar documentos

Puede eliminar todos los documentos de la colección utilizando el remove()función. El siguiente código de CoffeeScript muestra cómo eliminar todos los registros almacenados en 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

Guarde el código anterior en un archivo con nombre delete_documents.coffeey ejecútelo como se muestra a continuación. este programa elimina todos los documentos de la colección especificada mostrando los siguientes mensajes.

C:\> coffee delete_documents.coffee
Connection established to mongodb://localhost:27017/testdb
Document deleted

Después de eliminar, si ejecuta el read_documents.coffee programa, obtendrá una colección vacía como se muestra a continuación.

C:\> coffee Read_all_documents.coffee
Connection established to mongodb://localhost:27017/testdb
Found: [ ]