MongoDB

De GEATI - Grupo de Estudos Avançados em TI
Ir para: navegação, pesquisa

Considerado uns dos mais interativos, ate com os mais leigos, sem muita noção de SQL, o MongoDB é um sistema NoSQL orientado a documentos, desenvolvido em C++. Documentos neste sistema são serializados naturalmente no formato JSON (Javascrip Object Notation) e estes documentos são armazenados fisicamente recorrendo à codificação binária do formato JSON, denominada de BSON (Daniel Pereira, 2014)[1], Os ficheiros BSON geridos pelo sistema não podem ultrapassar um tamanho máximo de 19 Megabytes (Bernardino e Abramova, 2013)[2]. Também segundo Daniel[1] Pereira et al. (2014) Neste sistema os documentos são agrupados em coleções, em conformidade com a sua estrutura. Alguns documentos com diferentes estruturas também podem ser armazenados na mesma coleção mas, para manter uma boa performance, é aconselhável agrupar, na mesma coleção, documentos com estruturas similares (Bernardino e Abramova, 2013)[2]. Este sistema usa o sistema de replicação mestre-escravo onde o utilizador define um nó mestre e um ou vários nós escravos, quando o nó mestre apresenta falha, o nó escravo que possua a réplica de dados mais recente é didiligenciado como mestre (Daniel Pereira, 2014)[1].

Os dados a seguir foram retirados do site MongoDB, do manual que este próprio disponibiliza:

Metodos de inserção de dados

db.collection.insert(document,{write concern, ordered})

O parâmetro document sera o próprio objeto inserido no BD, ou array de objetos. O segundo parâmetro é opcional, já que quando omitido, utiliza-se o padrão. Write concern dirá respeito a como o objeto sera tratado, à preocupação do banco, e Ordered é um booleano, onde quando 1 os documentos serão inseridos na ordem do array.

Exemplo: db.pessoas.insert({nome:João, idade:18, sexo:M}) Este exemplo insere o objeto João na coleção pessoas do BD, retornando um boolean informando o sucesso ou falha da operação e um ObjectID, que será o ID do objeto inserido.

Metodos de deleção de dados

db.collection.deleteOne(filter)

O parâmetro filter será um objeto que seria o critério de deleção.

Exemplo: db.pessoas.deleteOne({nome:João}) Este exemplo deleta o objeto João da coleção pessoas do BD, retornando um boolean informando o sucesso ou falha da operação.

Metodos de seleção de dados

db.collection.find(query, projection)

O parâmetro query é opcional, onde este serve para filtrar os documentos da coleção retornados pelo método. Quando nulo ({}), retorna todos os documentos de uma coleção. O parâmetro projection também é opcional, onde este serve para filtrar os campos dos documentos retornados pelo método.

Exemplo: db.pessoas.find({nome:João}, {nome:1, idade:1, sexo:0}) Este exemplo retornaria apenas os campos nome e idade do objeto João, que esta armazenado na coleção Pessoas.

Metodos de atualização de dados

db.collection.update(query, update, options)

O parametro query será o criterio da atualização. O parametro update será um objeto com as mudanças a serem efetuadas. O parametro options será um objeto contendo o objeto write concern, o boolean multi e o boolean upsert. Este normalmente é omitido e as configurações padrão são utilizadas

Exemplo: db.pessoas.find({nome:João}, {idade:19})

Este exemplo alteraria o atributo idade do objeto João na coleção pessoas do BD.
  1. 1,0 1,1 1,2 PEREIRA, D. J. P. Armazéns de dados em bases de dados NoSQL. 2014. 178 f. Dissertação (Mestrado em Engenharia Informática) – ISEP, Porto.
  2. 2,0 2,1 Abramahova, V.; Bernardino, J. NoSQL databases: MongoDB vs Cassandra. in: Proceedings of the International C* Conference. ACM, 2013.