Introdução ao MongoDB

O MongoDB é um sistema de gerenciamento de banco de dados NoSQL (não relacional) de código aberto que armazena dados em formato de documento JSON (BSON, uma representação binária JSON). Ele é desenvolvido pela MongoDB Inc. e é projetado para lidar com grandes volumes de dados, proporcionando flexibilidade e escalabilidade.

Principais Conceitos do MongoDB:

  1. Banco de Dados: No MongoDB, os dados são organizados em bancos de dados, que são contêineres físicos para coleções. Cada banco de dados tem seu próprio conjunto de arquivos no sistema de arquivos.

  2. Coleções: Uma coleção é um grupo de documentos no MongoDB, similar a uma tabela em bancos de dados relacionais. No entanto, as coleções não impõem um esquema fixo, o que significa que diferentes documentos em uma coleção podem ter campos diferentes.

  3. Documentos: Os documentos são representações de dados no MongoDB, similares a objetos JSON. Eles são armazenados em formato BSON (Binary JSON). Documentos em uma coleção não precisam ter a mesma estrutura ou campos.

  4. Campos: Cada documento MongoDB possui um conjunto de campos-chave e valores. Campos podem conter valores de diferentes tipos de dados, incluindo strings, números, booleanos, arrays e até mesmo outros documentos.

  5. _id: Todos os documentos em uma coleção MongoDB devem ter um campo especial chamado _id. Este campo é único para cada documento na coleção e é usado como um identificador exclusivo.

Exemplo de Operações Básicas no MongoDB:

Conectar ao Banco de Dados:

const MongoClient = require('mongodb').MongoClient;
const uri = "mongodb+srv://<username>:<password>@cluster.mongodb.net/test?retryWrites=true&w=majority";
const client = new MongoClient(uri, { useNewUrlParser: true });
client.connect(err => {
  const collection = client.db("mydb").collection("mycollection");
  // Operações no banco de dados aqui
  client.close();
});

Inserir Documento na Coleção:

const document = { key: "value", number: 42 };
collection.insertOne(document, function(err, res) {
    if (err) throw err;
    console.log("Documento inserido com sucesso");
});

Consultar Documentos na Coleção:

collection.find({ key: "value" }).toArray(function(err, result) {
    if (err) throw err;
    console.log(result);
});

Atualizar Documento na Coleção:

const query = { key: "value" };
const newValues = { $set: { key: "newvalue" } };
collection.updateOne(query, newValues, function(err, res) {
    if (err) throw err;
    console.log("Documento atualizado com sucesso");
});

Remover Documento da Coleção:

const query = { key: "value" };
collection.deleteOne(query, function(err, obj) {
    if (err) throw err;
    console.log("Documento deletado com sucesso");
});

O MongoDB é uma ferramenta poderosa para armazenar dados sem uma estrutura fixa e é especialmente útil em situações onde os requisitos de dados podem mudar frequentemente ou quando você precisa lidar com grandes volumes de dados de forma escalável. Ele é amplamente utilizado em aplicações modernas da web e móveis.