Palestra sobre MongoDB com PHP no PHP'n'Rio

Post on 15-Jan-2015

4.763 views 0 download

description

Palestra sobre MongoDB com PHP no PHP'n'Rio

Transcript of Palestra sobre MongoDB com PHP no PHP'n'Rio

com

Jean Carlo Nascimento aka SUISSA

github.com/suissaabout.me/suissa

nosqlbr.com.br@osuissa

NOSQLO que é?

Quais são?Por que usar?

Onde usar?

key/value

graph

Terminologia

SQL RDBMS

DATABASETABLEROWSQUERYINDEXPARTITION

MongoDB    

DATABASECOLLECTIONJSON DOCUMENTQUERYINDEXSHARD

INSERIR

INSERT INTO USERS VALUES(1,1)

$db->users->insert(array("a" => 1, "b" => 1));

//ou$query = array(    'usuario'    => "suissa",    'email' => "jnascimento@gmail.com");

$db->collection->insert($query);

CONSULTAR

select * from tabela where nome = 'Jean Nascimento' 

$filter = array( "nome" => "Jean Nascimento" );$cursor = $collection->find($filter);foreach ($cursor as $arr) {     echo $arr["nome"]. " - " . $arr["_id"] . "<br />"; } 

CONSULTAR

select * from tabela where nome LIKE 'J___ Nascimento'

$filter = array( "nome" => new MongoRegex('/^J[a-Z]{3}Nascimento/i' );

select * from tabela where nome LIKE '%Nasc%' 

$filter = array(   'title' => new MongoRegex('/.Nasc./i') );

ALTERAR

update tarefas set Tarefa='Terminar artigo' where Usuario='suissa'

$db->collection->update(    array('Usuario'=> 'suissa'),     array('$set' => array('Tarefa' => 'Terminar artigo')));   

update users set a=a+2 where b='q'

$db->users->update(array("b" => "q"), array('$inc => array("a" => 2)));

EXCLUIR

delete from usuarios where Usuario = 'suissa'

$db->collection->remove(array('Usuario'=> 'suissa'));

EXPLAIN

EXPLAIN SELECT * FROM users WHERE z=3

$db->users->find(array("z" => 3))->explain()

 

Talk is cheap. Show me the 

code.

 $nome_banco = ‘prioridades’;$nome_collection = ‘tarefas’;$this->conexao = new Mongo();$this->db = $this->conexao->$nome_banco;$this->collection = $this->db->$nome_collection;

 

function inserir(){    $this->query = array(    ‘UsuarioID’ => $this->UsuarioID,    ‘Usuario’ => $this->Usuario,    ‘Tarefa’ => $this->Tarefa,    ‘Tipo’ => $this->Tipo,//Obrigatório, idéia, outro    ‘Prioridade’ => $this->Prioridade);    $this->collection->insert($this->query);}

 

function excluir(){    $this->mongo_id = new MongoID($this->_id);    $this->collection->remove(array(‘_id’ => $this->mongo_id));}    

 

function mudar_tarefa(){    $this->mongo_id = new MongoID($this->_id);    $this->collection->update(array(‘_id’ => $this->mongo_id), array(‘$set’ => array(‘Tarefa’ => $this->Tarefa)), false);} 

 

function mudar_tarefa(){    $this->mongo_id = new MongoID($this->_id);    $this->collection->update(array(‘_id’ => $this->mongo_id), array(‘$set’ => array(‘Tarefa’ => $this->Tarefa)), false);} 

 function mudar_prioridade(){    $this->mongo_id = new MongoID($this->_id);    if($this->modo==’up’){        $this->collection->update(            array(‘_id’ => $this->mongo_id),                             array(‘$inc’ => array(‘Prioridade’ => 1)),             false        );    } elseif($this->modo==’down’){        $this->collection->update(            array(‘_id’ => $this->mongo_id),             array(‘$inc’ => array(‘Prioridade’ => -1)),             false        );    }}

 

https://github.com/suissa/mongodb-exemplos

Frameworks

CakePHPCodeigniterDoctrineDrupalFat-FreeKohana

LithiumMemcachedSymfony 2TechMVCVorkYiiZend

Standalone Tools

ActiveMongo

MapReduce API

Mongofilesystem

Mandango

MongoDb PHP ODM

Mongodloid

MongoQueue

MongoRecord

Morph

simplemongophp

Uniform Server 6-Carbo with MongoDB and phpMoAdmin

Referências

http://www.nosqlbr.com.br/http://nosql-database.org/http://pt.wikipedia.org/wiki/NoSQLhttp://www.mongodb.org/