Mongoose
Nesta página, de caráter mais teórico, vamos aprender sobre o Mongoose. De forma resumida: o Mongoose é uma biblioteca em JavaScript para se programar o MongoDB de dentro do Node,js.
De acordo com uma sondagem que fiz quando pensava em escrever um livro sobre MEAN stack, infelizmente não consegui achar o resultado para compartilhar com vocês, fiz no Facebook, em uma comunidade em inglês do MEAN stack, "programador não gosta de ler".
Infelizmente, acho isso uma pena😌😌 e realmente acho que deveriam ler mais. Um exemplo seria o TDD, que seria um nível de leitura, nesse caso, dos códigos. Eu também fico ansioso para ver os códigos rodando, mas coloquei na minha cabeça de programar que "a pressa é inimiga da perfeição".
Recentemente, tive de "enfrentar" meus supervisores de pós-doutoramento, sempre me apresando; desinstalei o WhatsApp para poder trabalhar, somente assim consegui avançar. Note que de forma alguma estou indo contra a ideia de Startups, nesse caso realmente a pressa pode ser melhor, mas seria uma pressa intencional nessa caso, como diz Steve Blank "get out of the building" 😂😂😂.

Refiro-me a uma pressa sem necessidade, sem compromisso com algo, somente para terminar logo. Lembrei-me de uma imagem que infelizmente não salvei, vi no Facebook, achar isso vai ser pior do que achar algo no meu computador.
Basicamente, se comparavam um doutor com um programador: o programar pensava em desisti no primeiro obstáculo, ao passo que o doutorado se leva anos para se terminar.
Conversa à parte, vamos falar do Mongoose.
Modelagem de dados
No contexto do Mongoose, modelagem de dados é quando se defini o que estará em um banco de dados, e como estará, ou seja, os pormenores. Você pode definir nesse processo informações como o tipo do dado, se é obrigatório, limites numéricos...fazemos isso no curso, contudo, de forma não exaustiva; a documentação oficial oferece muitos outros exemplos que tornariam o curso muito longo e com risco de se perder o foco. Uma das consequências desse processo, e fazemos isso no curso, é que o próprio Mongoose, usando o esquema, filtra o que será salvo. Considere um cenário de req.body
cheio de informações inúteis, somente o que bate com a modelagem será salvo.
Ver aula 17 "Fazendo nosso primeiro teste com Jest, part 2" (35:42). Fiz um corte aqui.
//nosso esquema para gatos fofinhos
const kittySchema = new mongoose.Schema({
name: String
});
No esquema acima, declaramos para o Mongoose que queremos que os gatos tenham nome, somente isso.
Testando se salva algo que não existe no esquema
Testamos no curso o cenário de tentarmos salvar a idade, isso falha!
it('Estamos testando se é salvo no esquema algo que não existe', () => {
const age = 10;
const silence = new Kitten({ age });
expect(silence.age).toBeUndefined();
})
})

O que o Mongoose oferece?
Facilidade na criação de conexões múltiplas. Isso facilita usar o fato de que o MongoDB é escalável horizontalmente;
Facilidade na criação de métodos personalizados para se manipular os atributos dos esquemas, abordado no curso;
Métodos embutidos para se facilitar atividades padrão como salvar;
Formas de se conectar diferentes documentos, ver o conceito de populate aqui;
Métodos embutidos para validação dos atributos e sistema de mensagens que avisam de erros;
Outros;
É isso aí pessoal, a melhor forma de se aprender é colocando a mão na massa!! Bons estudos!

Last updated
Was this helpful?