Olá pessoal, hoje iremos ver como realizar a criação e execução de funções dentro de uma base no banco de dados MongoDB.
Perceba que é puro código JavaScript, na linha 1, temos a declaração da função, onde receberemos como argumento o collectionName (nome da coleção) e o _id (chave da coleção), na linha 3, executamos a busca do documento utilizando como critério o _id, na linha 5, utilizamos a função Object.bsonsize(), que retorna o tamanho em bytes do documento.
Para criar a função no Robomongo, basta seguir como abaixo:
Existem outras maneiras de criar funções no MongoDB, para mais detalhes veja a documentação oficial: https://docs.mongodb.com/manual/tutorial/store-javascript-function-on-server/index.html
Na linha 1, carregamos os scripts para que possam ser executados, na linha 3, executamos a função chamada documentSize(<<nome_coleção>>, <<valor_da_chave>>)
Executando no Robomongo temos o seguinte resultado:
Na imagem acima foi executada a função retornando o devido resultado, as funções no MongoDB podem ajudar em atividades comuns na manipulação dos dados.
Até a próxima.
Conhecendo o MongoDB
Nos dias atuais o tema NoSQL vem sendo muito discutido, muitas empresas vem adotando este paradigma de armazenamento, mas como toda tecnologia existem prós e contras, para entender bem o tema recomento a leitura do livro NoSQL Essencial (NoSQL Destilled) dos autores Promod J. Sadalage e Martin Fowler, o livro mostra características de aplicações, modelos de NoSQL, entre outras detalhes importantes sobre adoção de qualquer banco desse segmento.
O MongoDB é um banco de dados NoSQL baseado no modelo de documentos, onde cada registro é armazenado em forma de um documento BSON, uma característica muito legal do MongoDB é justamente trabalhar neste formato, porque o formato JSON é amplamente utilizado pela maioria dos desenvolvedores, sendo assim o entendimento da estrutura de armazenamento se torna simples.
Criando Funções no MongoDB
O MongoDB permite a criação de funções JavaScript dentro do banco, com isso podemos criar funções e executa-las manipulando nossas coleções e seus dados.
Um ponto muito importante que devemos ressaltar, seguindo boas práticas de desenvolvimento, devemos evitar de adicionar lógicas de negócio dentro dessas funções, o uso de funções deve ser efeito com a finalidade de manipular informações, evitando criar as famosas "Procedures" do mundo SQL.
No próprio site oficial do MongoDB, existe uma nota informando para usar as funções com cautela e evitar de acrescentar lógicas de negócio dentro do banco, pois existem limitações na execução de código JavaScript sobre o MondoDB.
https://docs.mongodb.com/manual/tutorial/store-javascript-function-on-server/index.html (09/04/2018 ás 19:00) |
Calculando o Tamanho de um Documento BSON
Para termos um exemplo do uso de funções no MongoDB, vamos criar uma função que retorna o tamanho de um documento de uma determinada coleção, para realizar a criação de funções, podemos utilizar a linha de comando logado na devida base de dados, ou utilizar alguma ferramenta como o Robomongo (Robo 3T), a função irá ficar como abaixo:
1 2 3 4 5 6 7 8 | function(collectionName, _id) { var data = db.getCollection(collectionName).findOne({_id:_id}); var result = Object.bsonsize(data); return result; } |
Perceba que é puro código JavaScript, na linha 1, temos a declaração da função, onde receberemos como argumento o collectionName (nome da coleção) e o _id (chave da coleção), na linha 3, executamos a busca do documento utilizando como critério o _id, na linha 5, utilizamos a função Object.bsonsize(), que retorna o tamanho em bytes do documento.
Para criar a função no Robomongo, basta seguir como abaixo:
Criando uma função utilizando a ferramenta Robomongo. |
Existem outras maneiras de criar funções no MongoDB, para mais detalhes veja a documentação oficial: https://docs.mongodb.com/manual/tutorial/store-javascript-function-on-server/index.html
Executando uma Função
Agora vamos executar a função da seguinte maneira:
1 2 3 | db.loadServerScripts(); documentSize("collection_teste", "123456"); |
Na linha 1, carregamos os scripts para que possam ser executados, na linha 3, executamos a função chamada documentSize(<<nome_coleção>>, <<valor_da_chave>>)
Executando no Robomongo temos o seguinte resultado:
Execução da função no Robomongo. |
Na imagem acima foi executada a função retornando o devido resultado, as funções no MongoDB podem ajudar em atividades comuns na manipulação dos dados.
Até a próxima.
Eh isso ai Caio!! Show!
ResponderExcluir