mongo + php
TRANSCRIPT
![Page 1: Mongo + php](https://reader037.vdocuments.mx/reader037/viewer/2022100218/55834cedd8b42a882e8b529c/html5/thumbnails/1.jpg)
MongoDB + PHP
![Page 2: Mongo + php](https://reader037.vdocuments.mx/reader037/viewer/2022100218/55834cedd8b42a882e8b529c/html5/thumbnails/2.jpg)
Quem
Agripino Duarte
@agripinoduarte
@RadigTI
![Page 3: Mongo + php](https://reader037.vdocuments.mx/reader037/viewer/2022100218/55834cedd8b42a882e8b529c/html5/thumbnails/3.jpg)
MongoDb
“MongoDB (from "humongous") is a scalable, highperformance, open source NoSQL database”
mongodb.org
![Page 4: Mongo + php](https://reader037.vdocuments.mx/reader037/viewer/2022100218/55834cedd8b42a882e8b529c/html5/thumbnails/4.jpg)
MongoDb
✔ Escrito em C++✔ Linguagem Rica e de Fácil Entendimento✔ Orientado a Documentos (BSON)✔ Não Relacional (NoSQL)✔ Tipado Dinamicamente (Schemaless)✔ Suporte a Índices✔ Suporte a Replicação (MasterSlave e Replica Sets)✔ Map/Reduce✔ Mais...
![Page 5: Mongo + php](https://reader037.vdocuments.mx/reader037/viewer/2022100218/55834cedd8b42a882e8b529c/html5/thumbnails/5.jpg)
MongoDbDrivers
✔ C✔ C++✔ Erlang✔ Haskell✔ Java✔ Javascript✔ .NET (C# F#, PowerShell, etc)✔ Node.js✔ Perl ✔ PHP✔ Python✔ Ruby✔ Scala
![Page 6: Mongo + php](https://reader037.vdocuments.mx/reader037/viewer/2022100218/55834cedd8b42a882e8b529c/html5/thumbnails/6.jpg)
MongoDb
Linux/UnixOS X
Windows32 e 64 bits
![Page 7: Mongo + php](https://reader037.vdocuments.mx/reader037/viewer/2022100218/55834cedd8b42a882e8b529c/html5/thumbnails/7.jpg)
MongoDb
![Page 8: Mongo + php](https://reader037.vdocuments.mx/reader037/viewer/2022100218/55834cedd8b42a882e8b529c/html5/thumbnails/8.jpg)
MongoDb
Instalando
![Page 9: Mongo + php](https://reader037.vdocuments.mx/reader037/viewer/2022100218/55834cedd8b42a882e8b529c/html5/thumbnails/9.jpg)
InstalandoLinux
Fácil: aptget/aptitude/yum install mongodb
Pouco fácil:curl http://downloads.mongodb.org/linux/mongodblinuxx86_64x.y.z.tgz > mongo.tgztar zxvf mongo.tgzmkdir p /data/dbchown mongo /data/dbmongod config /etc/mongod.conf
![Page 10: Mongo + php](https://reader037.vdocuments.mx/reader037/viewer/2022100218/55834cedd8b42a882e8b529c/html5/thumbnails/10.jpg)
InstalandoOS X
Fácil: brew/port install mongodb
Pouco Fácil: curl http://downloads.mongodb.org/osx/mongodbosxi386x.y.z.tgz > mongo.tgztar zxvf mongo.tgzsudo mkdir p /data/dbsudo chown `id u` /data/dbmongod config /etc/mongod.conf
![Page 11: Mongo + php](https://reader037.vdocuments.mx/reader037/viewer/2022100218/55834cedd8b42a882e8b529c/html5/thumbnails/11.jpg)
InstalandoWindows
Difícil:cd \move C:\mongodbwin32* C:\mongodbmd datamd data\dbC:\mongodb\bin\mongod.exe(Depending on the security level of your system, Windows will issue a Security Alert dialog box about blocking “some features” of C:\\mongodb\bin\mongod.exe)md C:\mongodb\logecho logpath=C:\mongodb\log > C:\mongodb\mongod.cfgC:\mongodb\bin\mongod.exe config C:\mongodb\mongod.cfg –installnet start MongoDB
![Page 12: Mongo + php](https://reader037.vdocuments.mx/reader037/viewer/2022100218/55834cedd8b42a882e8b529c/html5/thumbnails/12.jpg)
Suporte ao MongoDB no PHP
![Page 13: Mongo + php](https://reader037.vdocuments.mx/reader037/viewer/2022100218/55834cedd8b42a882e8b529c/html5/thumbnails/13.jpg)
Suporte ao MongoDB no PHP
PHP >5.1Linux, OS X e Windows
32 e 64 bits
![Page 14: Mongo + php](https://reader037.vdocuments.mx/reader037/viewer/2022100218/55834cedd8b42a882e8b529c/html5/thumbnails/14.jpg)
Instalando a Extensão mongo ao PHP
![Page 15: Mongo + php](https://reader037.vdocuments.mx/reader037/viewer/2022100218/55834cedd8b42a882e8b529c/html5/thumbnails/15.jpg)
Instalando a Extensão
Linuxsudo pecl install mongoextension=mongo.so
OS Xsudo pecl install mongo extension=mongo.so
WindowsGo to
http://www.php.net/manual/en/mongo.installation.php#mongo.installation.windowsextension=php_mongo.dll
![Page 16: Mongo + php](https://reader037.vdocuments.mx/reader037/viewer/2022100218/55834cedd8b42a882e8b529c/html5/thumbnails/16.jpg)
Usando o MongoDB no PHP
![Page 17: Mongo + php](https://reader037.vdocuments.mx/reader037/viewer/2022100218/55834cedd8b42a882e8b529c/html5/thumbnails/17.jpg)
MongoDB no PHP
Por que?
Web AppsInformações Rápidas
EscalabilidadeCache
![Page 18: Mongo + php](https://reader037.vdocuments.mx/reader037/viewer/2022100218/55834cedd8b42a882e8b529c/html5/thumbnails/18.jpg)
MongoDB no PHP
Criando uma Conexão
$m = new Mongo(); // conecta a localhost:27017
Ou
$m = new Mongo('exemplo.com:1337'); // conecta ao host exemplo.com na porta 1337
![Page 19: Mongo + php](https://reader037.vdocuments.mx/reader037/viewer/2022100218/55834cedd8b42a882e8b529c/html5/thumbnails/19.jpg)
MongoDB no PHP
Selecionando um banco de dados
$db = $m>phpms; //seleciona o banco de dados 'phpms'
Selecionando uma coleção
$participants = $db>participants;
![Page 20: Mongo + php](https://reader037.vdocuments.mx/reader037/viewer/2022100218/55834cedd8b42a882e8b529c/html5/thumbnails/20.jpg)
MongoDB no PHP
Inserindo dados
$participants >insert(array('name' => 'jose'
);
$participants >insert(array('name' => 'maria','cpf' => '12345678901'
);
![Page 21: Mongo + php](https://reader037.vdocuments.mx/reader037/viewer/2022100218/55834cedd8b42a882e8b529c/html5/thumbnails/21.jpg)
MongoDB no PHP
Executando um comando
$db>execute('db.insert({participants: {name:”jose”}})');
![Page 22: Mongo + php](https://reader037.vdocuments.mx/reader037/viewer/2022100218/55834cedd8b42a882e8b529c/html5/thumbnails/22.jpg)
MongoDB no PHP
Tipos de Dados
![Page 23: Mongo + php](https://reader037.vdocuments.mx/reader037/viewer/2022100218/55834cedd8b42a882e8b529c/html5/thumbnails/23.jpg)
MongoDB no PHP
MongoInt32: Inteiro de 32 bits num sistema 64 bits$i = new MongoInt32('123.45');
MongoInt64: Inteiro de 64 bits num sistema 32 bits$i = new MongoInt64('123.45');
MongoDate: Data/Hora em milisegundos$date = new MongoDate(strtotime('20120817 18:00:00'));
![Page 24: Mongo + php](https://reader037.vdocuments.mx/reader037/viewer/2022100218/55834cedd8b42a882e8b529c/html5/thumbnails/24.jpg)
MongoDB no PHP
Buscando num intervalo de datas
$start = new MongoDate(strtotime("20120817 00:00:00"));$end = new MongoDate(strtotime("20120901 00:00:00"));
$participants>find(array(“inscription_date” => array(
'$gt' => $start, '$lte' => $end
))
);
![Page 25: Mongo + php](https://reader037.vdocuments.mx/reader037/viewer/2022100218/55834cedd8b42a882e8b529c/html5/thumbnails/25.jpg)
MongoDB no PHP
Buscando num intervalo de datas
$start = new MongoDate(strtotime("20120817 00:00:00"));$end = new MongoDate(strtotime("20120901 00:00:00"));
$collection>find(array(“inscription_date” => array(
'$gt' => $start, '$lte' => $end)
));
![Page 26: Mongo + php](https://reader037.vdocuments.mx/reader037/viewer/2022100218/55834cedd8b42a882e8b529c/html5/thumbnails/26.jpg)
MongoDB no PHP
MongoDB nos Frameworks PHP
![Page 27: Mongo + php](https://reader037.vdocuments.mx/reader037/viewer/2022100218/55834cedd8b42a882e8b529c/html5/thumbnails/27.jpg)
MongoDB nos Frameworks PHP
CakePHPCodeIgniter
DrupalKohanaLithiumSymfony
ZendEtc.