Inicio > PHP > Mongodb y php

MONGODB Y PHP

24/11/2017PHP

 

Aprovechando que tengo tiempo libre me estoy dedicando a aprender cosas en las que ando más escaso de conocimientos relacionado con mi perfil.
MongoDB usa JSON y en PHP se gestiona todo con arrays. Y es el caso de las bases de datos noSQL. La verdad es que es bastante sencillo de aprender y usar:
-Crear la base de datos: Se puede hacer de dos maneras.

$this->obj_mongo = new Mongo();
//Primera forma de crear la bbdd.
$db = $this->obj_mongo->selectDB("usuarios"); //Si no existe la bbdd la crea
//Segunda forma de crear la bbdd.
$db = $this->obj_mongo->usuarios; //Si no existe la bbdd la crea
//Después de crear / acceder a la base de datos hay que crear / acceder a la colección de datos a manejar
//Primera opción
$this->collection = $db->selectCollection('users');
//Segunda opción
$this->collection = $db->users;

-Insertar datos:
//Los indices del array son los campos.
$newData = array( "username" => "Pedro", "password" => md5("mipassword"), "year" => "1940" );
$this->collection->insert($newData);

-Actualizar datos:
//ID ejemplo para actualizar
$id = '50d48a935f2d1ed80e000003';
//Array con los nuevos valores si se quiere mantenr un valor se respeta el valor antiguo
$updateData = array( "username" => "Pepe", "password" => md5("maspassword"), "year" => "1999" );
$this->collection->update(array("_id" => new MongoId($id)),$updateData);

-Borrar datos:
//ID ejemplo para borrar
$id = '50d48a935f2d1ed80e000003';
//Array con los nuevos valores si se quiere mantenr un valor se respeta el valor antiguo
$this->collection->remove(array("_id" => new MongoId($id)));

-Buscar datos: Hay dos maneras. Si se quieren buscar varios registros, se usa find y si se quiere buscar un registro se usa findOne. Ambas búsquedas aceptan criterios y operadores lógicos y de comparación. La función findeOne es igual a find en funcionalidad:
//Busqueda de varios registros con operadores lógicos en este caso AND
$cursor = $this->collection->find(array('$and' => 
                                array(array("username" => "Pedro"), array("year" => "1940"))));
//Busqueda por un campo
$cursor = $this->collection->find(array('username' => 'Juan'));
//Busqueda por un campo con operador de comparación lt menor que
$users = $collection->find(array('year' => array( '$lt' => 1950)));

-Mostrar datos: Hay dos maneras, dependiendo si se usa find o findOne en la búsqueda:
//Usando find para la búsqueda. 
$cursor = $this->collection->find();
foreach ($cursor as $obj) {
echo $obj['username'].' '.$obj['password'].' '.$obj['year'].' '.$obj['_id'].'
';
}