DEV Community

loading...
Quero Delivery

[Parte 1] Do MySQL para o MongoDB: Comandos básicos

wenderpmachado profile image Wender Pinto Machado ・2 min read

Chegou a hora de migrar para o MongoDB e você só sabe SQL...

Relaaxa!!

Abaixo mostro alguns comandos para você começar no mundo do MongoDB 🤩

Criando uma tabela de usuário

MySQL

CREATE TABLE `usuario` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `nome` varchar(125) NOT NULL,
  `email` varchar(125) NOT NULL,
   PRIMARY KEY (`id`)
);
Enter fullscreen mode Exit fullscreen mode

MongoDB

// simplesmente

db.createCollection('usuario');

// OU com validação

db.createCollection('usuario', {
  validator: { 
    $jsonSchema: {
      bsonType: "object",
      required: [ "nome", "email" ],
      properties: {
        nome: {
          bsonType: "string",
          description: "deve ser uma string e é obrigatório"
        },
        email: {
          bsonType : "string",
          pattern : "@querodelivery\.com$",
          description: "deve ser uma string e corresponder ao padrão de expressão regular"
        }
      }
    }
  }
})
Enter fullscreen mode Exit fullscreen mode

💡Por padrão o MongoDB cria uma chave primária _id, do tipo ObjectId


Criando um novo usuário

MySQL

INSERT INTO usuario(nome, email) VALUES ('Wender Machado', 'wender.machado@querodelivery.com');
Enter fullscreen mode Exit fullscreen mode

MongoDB

db.usuario.insert({
  nome:"Wender Machado",
  email: "wender.machado@querodelivery.com"
});
Enter fullscreen mode Exit fullscreen mode

Buscando um usuário pelo id

MySQL

SELECT nome FROM usuario WHERE id = 1
Enter fullscreen mode Exit fullscreen mode

MongoDB

db.usuario.findOne(
  { 
    _id: ObjectId("5f9c62df2a455224b988809a")
  },
  {
    nome: 1, // irá retornar apenas o nome
    email: 0 // não irá retornar o email
  })
Enter fullscreen mode Exit fullscreen mode

💡No segundo parametro (projeção) também é possível renomear chaves, além de criar novos valores dinamicamente como por exemplo duas informações concatenadas.


Buscando usuários pelo nome

MySQL

SELECT id FROM usuario WHERE nome like 'Wender%'
Enter fullscreen mode Exit fullscreen mode

MongoDB

db.usuario.find({ nome: { $regex: /Wender*/i } })
Enter fullscreen mode Exit fullscreen mode

Paginando um resultado

MySQL

SELECT id, nome, email FROM usuario LIMIT 20 OFFSET 10;
Enter fullscreen mode Exit fullscreen mode

MongoDB

db.usuario.find({ nome: { $regex: /Wender*/i } }).skip(10).limit(20)
Enter fullscreen mode Exit fullscreen mode

Atualizando um usuário

MySQL

UPDATE usuario SET nome = 'Wender Pinto Machado' WHERE id = 1;
Enter fullscreen mode Exit fullscreen mode

MongoDB

db.usuario.updateOne(
  { _id: ObjectId("5f9c62df2a455224b988809a") }, // quem será alterado
  { $set: { nome: 'Wender Pinto Machado' } } // o que será alterado
)
Enter fullscreen mode Exit fullscreen mode

Removendo um usuário

MySQL

DELETE FROM usuario WHERE id = 1
Enter fullscreen mode Exit fullscreen mode

MongoDB

db.usuario.remove({ _id: ObjectId("5f9c62df2a455224b988809a") })
Enter fullscreen mode Exit fullscreen mode

Além desses operadores, existem vááários outros que você encontra no menu Operator da documentação oficial.

E para realizar consultas mais robustas, temos o Aggregation, que irei abordar nos próximos posts.

🔹🔹🔹🔷🔹🔹🔹

E ai, curtiu o post? 😃

Não deixe de seguir:

Discussion (0)

Forem Open with the Forem app