O documento apresenta Michel Felipe e sua experiência como analista de sistemas. A agenda inclui tópicos sobre MongoDB como características, instalação, comandos no shell, PHP e MongoDB para armazenamento e recuperação de dados. O documento também discute conceitos de bancos de dados NoSQL e como MongoDB pode ser usado para armazenar grandes quantidades de imagens.
2. APRESENTAÇÃO
v Analista de Sistemas na Prodeb
v Formado em Redes de Computadores
v Pós-Graduando em Eng. de Software
3. AGENDA
v MongoDb: Características
v Download, instalação e Comandos Shell
v Inserindo, retornando e removendo dados via shell
v PHP e MongoDB: Por que utilizá-los juntos?
v Conexão PHP com Mongo e CRUD
v Conceito de “Chave Primária”
v ORM’s para PHP + Mongo
4. MONGO E NOSQL
v Not only SQL – Banco de dados não relacional
v Foco em “escalabilidade” e “desempenho”
v Tipos: Baseado em Grafos, Orientado a colunas
5. MONGODB -
CARACTERISTICAS
v Nosql open source baseado em documentos
v Fácil utilização
v Utiliza uma API OO Javascript
13. MONGODB – CONEXÃO:
PROBLEMAS
v Problemas podem acontecer
• Crash, conexão não finalizada corretamente
v Necessário executar um “repair” nas bases
v “old lock file”, pode indicar a remoção do arquivo
“mongod.lock”
14. MONGODB – CONEXÃO:
AUTENTICAÇÃO
v Provê segurança para as bases de dados
v Geralmente não é necessário para ambientes de “teste”
v Utiliza-se o argumento opcional “- - auth” na conexão
15. MONGODB – CRUD NO
BASH
v Método db.collection.insert( );
v Método db.collection.find( ) e db.collection.findOne( );
v Método db.collection.remove( );
v Método db.collection.update( ) e db.collection.save( );
16. MONGODB – MAPREDUCE
v Mapeia os dados, usando um valor do documento como
condição
v Muito parecido com o “GROUP BY”
v Reduz os valores mapeados, associando uma informação
18. PHP + MONGODB?
v Gerenciar dados em larga escala
v ORM’s geralmente não são bons em desempenho
v As vezes é necessário alternativas:”MemCache,
Raid,Cluster…”
24. PHP + MONGO–
INSTALAÇÃO DO DRIVER
1. https://github.com/mongodb/mongo-php-
driver/downloads
2. Copiar para a pasta de extensões do PHP(.dll
ou .so)
25. PHP + MONGO – CONECTANDO
AO MONGODB
<?php
$connection = new Mongo(‘localhost:27017’);
?>
30. PHP + MONGO – GRIDFS
v Utilizado para armazenar grandes arquivos
v Associa metadados aos arquivos
v Separa arquivos em “chunks”
v Utiliza a classe MongoGridFS
32. PHP + MONGO – REST API
v Acesso aos dados usando requisição HTTP
v Interfaces Especiais:
v Sleepy Mongoose (Python)
v MongoDB Rest(Node.js)
v MongoDB Java Rest server
33. PHP + MONGO – REST API
v Acesso nativo de “somente leitura”
v Necessário o parâmetro “- - rest” no bash/prompt
v Acessível através porta padrão: 28017
34. PHP + MONGO – REST API
Exemplo:
http://localhost:28017/mongophp/user/find