CoffeeScript - MongoDB
MongoDB é uma plataforma cruzada, banco de dados orientado a documentos que fornece alto desempenho, alta disponibilidade e fácil escalabilidade. O MongoDB trabalha no conceito de coleção e documento. Para obter mais informações, leia nosso Tutorial do MongoDB .
Neste capítulo, você aprenderá como se comunicar com o banco de dados MongoDB usando CoffeeScript.
Instalação
O banco de dados MongoDB pode ser integrado ao CoffeeScript usando o driver Node.js 2.0 do MongoDB. Em primeiro lugar, você precisa instalar o MongoDB em seu sistema, consultando o capítulo de ambiente de nosso tutorial do MongoDB.
Depois de instalar o MongoDB, navegue por seu bin pasta (se você não definiu o caminho) e inicie o serviço MongoDB conforme mostrado abaixo.
C:\Program Files\MongoDB\Server\3.2\bin> mongod
Finalmente, instale o driver MongoDB e suas dependências executando o seguinte comando NPM no prompt de comando.
npm install mongodb --save
Conectando-se ao MongoDB
Para se conectar ao MongoDB, primeiro de tudo crie o MongoClient usando isso, invoque o connect()função. Esta função aceita url e uma função de retorno de chamada como parâmetros.
O seguinte código CoffeeScript mostra como se conectar ao servidor MongoDB. Se o servidor MongoDB estiver sendo executado em seu sistema, este programa estabelece uma conexão com o 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
Salve o código acima em um arquivo com o nome connect_db.coffeee execute-o conforme mostrado abaixo. Se o banco de dados for criado com sucesso, ele exibirá a seguinte mensagem
c:\> coffee connect_db.coffee
coffee connect_db.collection
Connection established to mongodb://localhost:27017/testdb
Criando uma coleção
Uma coleção no MongoDB contém os documentos que armazenamos nela. Você pode criar uma coleção usando ocollection()função. Esta função aceita um argumento de string que representa o nome da coleção que queremos criar.
O seguinte código CoffeeScript mostra como criar uma coleção no MongoDB. Em caso de erros, eles serão exibidos no 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
Salve o código acima em um arquivo com o nome create_collection.coffeee execute-o conforme mostrado abaixo. Se a coleção for criada com sucesso, ela apresentará a seguinte mensagem
c:/> coffee create_collection.coffee
Connection established to mongodb://localhost:27017/testdb
Collection created successfully.
Inserindo Documentos
Você pode inserir documentos em uma coleção no MongoDB, você precisa invocar uma função chamada insert() passando a lista de documentos que precisam ser inseridos, como parâmetros.
O seguinte código CoffeeScript mostra como inserir documentos em uma coleção chamada My_collection. Em caso de erros, eles serão exibidos no 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
Salve o código acima em um arquivo com o nome insert_documents.coffeee execute-o conforme mostrado abaixo. Se os documentos forem inseridos com sucesso, aparece a seguinte mensagem
c:/> coffee insert_documents.coffee
Connection established to mongodb://localhost:27017/testdb
Documents inserted successfully
Lendo Documentos
Você pode recuperar os documentos armazenados no MongoDB usando uma função chamada find(). O código CoffeeScript a seguir mostra como recuperar os registros armazenados no 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
Salve o código acima em um arquivo com o nome read_documents.coffeee execute-o conforme mostrado abaixo. Este programa recupera o documento necessário na coleção especificada e o exibe conforme mostrado abaixo.
C:\> coffee read_documents.coffee
Connection established to mongodb://localhost:27017/testdb
Found: [ { _id: 56e269c10478809c3009ad1e,
name: 'Ram',
age: 26,
city: 'Hyderabad' } ]
Você também pode ler todos os documentos existentes em uma coleção particular executando o find() função sem passar quaisquer argumentos como mostrado abaixo.
#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
Salve o código acima em um arquivo com o nome read_all_documents.coffeee execute-o conforme mostrado abaixo. este programa recupera todos os documentos da coleção especificada e os exibe conforme mostrado abaixo.
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' } ]
Atualizando Documentos
Você pode atualizar os documentos armazenados no MongoDB usando uma função chamada update(). O código CoffeeScript a seguir mostra como atualizar os registros armazenados no 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 atualiza a cidade do funcionário chamado Ram de Hyderabad a Delhi.
Salve o código acima em um arquivo com o nome update_documents.coffeee execute-o conforme mostrado abaixo. este programa recupera os documentos na coleção especificada e os exibe conforme mostrado abaixo.
C:\> coffee update_documents.coffee
Connection established to mongodb://localhost:27017/testdb
Document updated
Após a atualização, se você executar o read_documents.coffee programa, então você observará que o nome da cidade da pessoa chamada Ram é atualizado a partir de Hyderabad para 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' } ]
Apagando Documentos
Você pode excluir todos os documentos da coleção usando o remove()função. O código CoffeeScript a seguir mostra como excluir todos os registros armazenados no 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
Salve o código acima em um arquivo com o nome delete_documents.coffeee execute-o conforme mostrado abaixo. este programa remove todos os documentos na coleção especificada exibindo as seguintes mensagens.
C:\> coffee delete_documents.coffee
Connection established to mongodb://localhost:27017/testdb
Document deleted
Após a exclusão, se você executar o read_documents.coffee programa, então você obterá uma coleção vazia, conforme mostrado abaixo.
C:\> coffee Read_all_documents.coffee
Connection established to mongodb://localhost:27017/testdb
Found: [ ]