Integrar NodeJS com MongoDB é uma etapa essencial no desenvolvimento de APIs robustas e escaláveis. MongoDB é um banco de dados NoSQL baseado em documentos que oferece alto desempenho, alta disponibilidade e fácil escalabilidade. Ele funciona bem com NodeJS, proporcionando uma maneira eficiente de gerenciar e manipular dados.
1. Instalação do MongoDB
Antes de começarmos a integrar MongoDB com NodeJS, precisamos ter certeza de que o MongoDB está instalado em nosso sistema. Se você ainda não o instalou, pode baixá-lo do site oficial do MongoDB. Após a instalação, você pode iniciar o MongoDB em um terminal separado e deixá-lo rodando em segundo plano.
2. Configurando o Mongoose
Mongoose é uma biblioteca do NodeJS que oferece uma solução direta, baseada em esquemas, para modelar os dados do seu aplicativo. Ele fornece uma maneira fácil de conectar nosso aplicativo NodeJS ao MongoDB. Para instalar o Mongoose, você pode usar o npm (Node Package Manager) com o seguinte comando: npm install mongoose.
Depois de instalado, precisamos configurá-lo para se conectar ao nosso MongoDB. Aqui está um exemplo de como fazer isso:
const mongoose = require('mongoose'); mongoose.connect('mongodb://localhost/test', {useNewUrlParser: true, useUnifiedTopology: true});
Este código irá conectar seu aplicativo NodeJS ao banco de dados MongoDB chamado 'test' que está sendo executado localmente em sua máquina. As opções useNewUrlParser e useUnifiedTopology são apenas para evitar avisos de depreciação.
3. Criação de Modelos
Com o Mongoose, podemos definir o que chamamos de 'Modelos' para nossos dados. Um modelo é uma classe com a qual construímos documentos. Em outras palavras, modelos são como blueprints para nossos dados. Aqui está um exemplo de como definir um modelo:
const Schema = mongoose.Schema; const blogSchema = new Schema({ title: String, author: String, body: String, comments: [{ body: String, date: Date }], date: { type: Date, default: Date.now }, hidden: Boolean, meta: { votes: Number, favs: Number } }); const Blog = mongoose.model('Blog', blogSchema);
Neste exemplo, criamos um modelo para um blog. Cada blog terá um título, autor, corpo, uma lista de comentários, uma data, um booleano oculto e alguns metadados. Cada um desses campos tem um tipo específico associado a ele.
4. Criação e Leitura de Documentos
Uma vez que temos nosso modelo, podemos começar a criar documentos. Aqui está um exemplo de como criar um novo documento:
const myBlog = new Blog({ title: 'My First Blog', author: 'John Doe', body: 'Hello, world!' }); myBlog.save(function (err, myBlog) { if (err) return console.error(err); console.log('Blog saved successfully!'); });
Para ler documentos, podemos usar o método find() em nosso modelo:
Blog.find({ author: 'John Doe' }, function(err, blogs) { if (err) return console.error(err); console.log(blogs); });
5. Atualização e Exclusão de Documentos
O Mongoose também fornece métodos para atualizar e excluir documentos. Aqui está um exemplo de como atualizar um documento:
Blog.updateOne({ author: 'John Doe' }, { title: 'Updated Blog Title' }, function(err, res) { if (err) return console.error(err); console.log(res); });
E aqui está um exemplo de como excluir um documento:
Blog.deleteOne({ author: 'John Doe' }, function(err) { if (err) return console.error(err); console.log('Blog deleted successfully!'); });
Integrar NodeJS com MongoDB é uma tarefa relativamente simples, mas poderosa. Com a capacidade de criar, ler, atualizar e excluir documentos, você pode construir APIs robustas e escaláveis que podem lidar com grandes quantidades de dados de maneira eficiente.