Como usar o Mongoose para interagir com o MongoDB no Node.js?

O Mongoose é uma biblioteca que facilita a interação com o MongoDB, oferecendo uma camada de abstração para realizar operações de CRUD de forma eficiente.

Como usar o Mongoose para interagir com o MongoDB no Node.js?

O Mongoose é uma biblioteca de Object Data Modeling (ODM) que facilita a interação com o MongoDB no Node.js. Com ele, você pode criar modelos de dados e realizar consultas complexas sem precisar escrever queries MongoDB diretamente.

1. Instalando o Mongoose

Primeiro, instale o pacote mongoose:

npm install mongoose

2. Conectando ao MongoDB com Mongoose

Crie um arquivo database.js para configurar a conexão:

const mongoose = require('mongoose');

const MONGO_URI = 'mongodb://localhost:27017/meubanco';

mongoose.connect(MONGO_URI, { useNewUrlParser: true, useUnifiedTopology: true })
    .then(() => console.log('Conectado ao MongoDB'))
    .catch(err => console.error('Erro ao conectar ao MongoDB:', err));

module.exports = mongoose;

3. Definindo um modelo com Mongoose

Com o Mongoose, você cria modelos de dados que representam as coleções no banco de dados. Aqui está um exemplo de modelo de um usuário:

const mongoose = require('mongoose');

const UsuarioSchema = new mongoose.Schema({
    nome: { type: String, required: true },
    email: { type: String, required: true, unique: true },
    idade: { type: Number, required: true }
});

const Usuario = mongoose.model('Usuario', UsuarioSchema);

module.exports = Usuario;

4. Criando e buscando dados

Com o modelo criado, você pode facilmente criar e buscar documentos no MongoDB:

Criando um novo usuário:

const Usuario = require('./Usuario');

const novoUsuario = new Usuario({ nome: 'João', email: 'joao@email.com', idade: 30 });
novoUsuario.save()
    .then(() => console.log('Novo usuário criado!'))
    .catch(err => console.error('Erro ao criar usuário:', err));

Buscando todos os usuários:

Usuario.find()
    .then(usuarios => console.log('Lista de usuários:', usuarios))
    .catch(err => console.error('Erro ao buscar usuários:', err));

5. Atualizando e removendo dados

Você pode também atualizar e remover documentos:

Atualizando um usuário:

Usuario.findOneAndUpdate({ nome: 'João' }, { idade: 31 }, { new: true })
    .then(usuario => console.log('Usuário atualizado:', usuario))
    .catch(err => console.error('Erro ao atualizar usuário:', err));

Removendo um usuário:

Usuario.findOneAndDelete({ nome: 'João' })
    .then(() => console.log('Usuário removido!'))
    .catch(err => console.error('Erro ao remover usuário:', err));

Conclusão

O Mongoose facilita a interação com o MongoDB no Node.js, fornecendo uma maneira estruturada de manipular dados e realizar operações de CRUD, tornando o código mais organizado e eficiente.

O MongoDB é uma escolha popular para armazenar dados NoSQL. Usando Mongoose, podemos definir modelos de dados e trabalhar com coleções de maneira mais organizada e intuitiva. Grandes empresas como Uber, eBay e LinkedIn utilizam MongoDB para armazenar grandes volumes de dados, graças à sua flexibilidade e escalabilidade.

Com o Mongoose, o trabalho com MongoDB se torna simples, desde a criação de documentos até a execução de consultas complexas.

Algumas aplicações:

  • Armazenamento de dados de usuários em aplicações web
  • Gestão de dados em sistemas de e-commerce
  • Plataformas de análise de dados
  • Aplicações em tempo real (chats, notificações)
  • Sistemas de recomendação

Dicas para quem está começando

  • Use o método save para inserir novos documentos.
  • Valide os dados com esquemas antes de salvar no banco.
  • Utilize métodos como findOneAndUpdate para atualizar documentos.
  • Evite consultas sem índices em grandes coleções para melhorar o desempenho.
  • Use virtuals e middleware para personalizar o comportamento de modelos.

Contribuições de Henrique Almeida

Compartilhe este tutorial: Como usar o Mongoose para interagir com o MongoDB no Node.js?

Compartilhe este tutorial

Continue aprendendo:

O que é o Sequelize e como usá-lo no Node.js?

O Sequelize é um ORM para Node.js que simplifica a interação com bancos de dados relacionais, como MySQL, PostgreSQL e SQLite.

Tutorial anterior

Como fazer consultas SQL no Node.js?

No Node.js, é possível fazer consultas SQL em bancos de dados como MySQL e PostgreSQL usando pacotes como `mysql2` e `pg`.

Próximo tutorial