Mongo + php

27

Click here to load reader

Transcript of Mongo + php

Page 1: Mongo + php

MongoDB + PHP

Page 2: Mongo + php

Quem

Agripino Duarte

@agripinoduarte

@RadigTI

Page 3: Mongo + php

MongoDb

“MongoDB (from "humongous") is a scalable, highperformance, open source NoSQL database”

mongodb.org 

Page 4: Mongo + php

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

MongoDbDrivers

✔  C✔  C++✔  Erlang✔  Haskell✔  Java✔  Javascript✔ .NET (C# F#, PowerShell, etc)✔  Node.js✔  Perl ✔  PHP✔  Python✔  Ruby✔  Scala

Page 6: Mongo + php

MongoDb

Linux/UnixOS X

Windows32 e 64 bits

Page 7: Mongo + php

MongoDb

Page 8: Mongo + php

MongoDb

Instalando

Page 9: Mongo + php

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

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

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

Suporte ao MongoDB no PHP

Page 13: Mongo + php

Suporte ao MongoDB no PHP

PHP >5.1Linux, OS X e Windows

32 e 64 bits

Page 14: Mongo + php

Instalando a Extensão mongo ao PHP

Page 15: Mongo + php

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

Usando o MongoDB no PHP

Page 17: Mongo + php

MongoDB no PHP

Por que?

Web AppsInformações Rápidas

EscalabilidadeCache

Page 18: Mongo + php

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

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

MongoDB no PHP

Inserindo dados

$participants >insert(array('name' => 'jose'

);

$participants >insert(array('name' => 'maria','cpf' => '12345678901'

);

Page 21: Mongo + php

MongoDB no PHP

Executando um comando

$db>execute('db.insert({participants: {name:”jose”}})');

Page 22: Mongo + php

MongoDB no PHP

Tipos de Dados

Page 23: Mongo + php

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

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

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

MongoDB no PHP

MongoDB nos Frameworks PHP

Page 27: Mongo + php

MongoDB nos Frameworks PHP

CakePHPCodeIgniter

DrupalKohanaLithiumSymfony

ZendEtc.