Inicio > PHP > Mongodb

MONGODB

24/11/2017PHP

 

Hace ya algunos años que están funcionando las bases de datos NoSQL. La verdad es que al principio me costó entender el concepto ya que siempre he trabajado con bases de datos relacionales como MySQL, Oracle y PostgreSQL. Así que empecé a trastear para saber como funcionaban. En concreto empecé a mirar MongoDb. Las bases de datos NoSQL, se diferencian en varios puntos a las bases de datos relacionales de toda la vida como son: que no usan SQL ya que no son bases de datos relacionales y que no se necesitan estructuras fijas (tablas, columnas etc.). MongoDb es un gestor de base de datos orientado a documentos donde la información se maneja en json y las colecciones son los contenedores de los documentos.
Después de esta breve introducción voy a poner unos ejemplos básicos en php para operar con MongoDb:


<?php
$this->obj_mongo = new MongoClient(); // Conexión a Mongo
//Para seleccionar una bbdd se pueden usar las instrucciones de abajo si la bbdd no existe se crea
$db = $this->obj_mongo->selectDB("usuarios");
$db = $this->obj_mongo->usuarios;
//Después de seleccionar la bbdd hay que crear o seleccionar la colección.
$collection = $db->users;
//La siguiente línea muestra como guardar información. Internamente creará una clave por cada registro. $collection->insert(array( "username" => "Fulanito", "City" => "Madrid", "ZipCode" => "28003" ));
//Hay dos maneras de actualizar un registro: por su clave o pasándole el valor de un campo y cambiará el primer registro
//que coincida con el criterio de búsqueda.
//Actualización por clave
$id = '54e603b0f259a8701300002a';
$collection->update(array("_id" => new MongoId($id)),array( "username" => "Pepe", "password" => md5("maspassword"), "year" => "5000" ));
//Actualización por campo. En este campo buscará un registro cuyo campo username valga 'Pepe'
$collection->update(array("username"=>"Pepe"), array('$set'=>array("username"=>"Gonzalo"))); //Hay dos maneras de borrar un registro: por su clave o pasándole el valor de un campo y borrará los registros que coincidan con el criterio de búsqueda
$id = '54e603b0f259a8701300002a'; $collection->remove(array("_id" => new MongoId($id)));
//Borrado del usuario con el campo username valga 'Gonzalo'
$collection->remove(array("username"=>"Gonzalo"));
//Buscar todos los registros
$cursor = $collection->find();
foreach ($cursor as $obj)
{
...
}
//Buscar con condiciones
//Operadores $and y $or
//Comparadores $lt (<), $gt (>), $eq (==)
$cursor = $this->collection->find(array('$and' => array(array("username" => "Pedro"), array("ZipCode" => "2003")))); //Buscar un registro
$collection->findOne(array('username' => 'Gonzalo'));
// Buscar usuarios con el campo codigo postal < 28000 //$users = $collection->find(array('ZipCode' => array( '$lt' => 28000)));


Este ejemplo es bastante sencillito y por supuesto que MongoDb tiene muchísimas más cosas pero esta es una introducción breve.