Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Clave-valor: Redis
Mapeo de Columnas:Hbase
Documentos: MongoDB
Grafos: Neo4j
DESCRIPCIN GENERAL DE MONGODB
Orientada a documentos
QU ES MONGODB?
Diferentes campos
Diferentes tamaos
Indexables
INSTALACIN MONGODB
Descargar la versin desde
http://www.mongodb.org/downloads
En Linux:
# creamos un directorio por defecto para los datos
$ sudo mkdir -p /data/db
Conexin persistente
<?php
$connection = new Mongo("localhost:27017", array("persist" => "x"));
?>
CMO GUARDAMOS UN DOCUMENTO?
<?php
try{
$mongo= new Mongo("localhost:27017", array("persist" => "x"));
$db = $mongo->comedy;
$collection = $db->cartoons;
$obj = array( " title " => "Calvin and Hobbes", "author" => "Bill Watterson" );
$collection->insert($obj);
$cursor = $collection->find();
foreach ($cursor as $obj) {
echo $obj["title"] . "\n";
}
} catch (MongoCursorException $e) {
die("Query failed " . $e -> getMessage());
}
AL GUARDAR:
{
'_id:'aristi',
'name:'Sebastian Aristizabal,
'friends': ['Pablo', 'Yeny'],
'followers:18,
'contact:{'twitter'=>'@arystyzabal',
'email'=>'sebaris@gmail.com'}
}
DOCUMENTOS MS COMPLEJOS
Representacin en php
//Consulta en array
$query=array( 'friends' => 'Pablo' );
$result=$collection->findOne($query);
IN ($in), no IN ($nin)
$ne
$query = array ( '_id' => array ( '$ne' => 'pepe'));
$result = $collection->find( $query );
$results = $collection->find();
foreach ($results as $r) {
print_r($r);
}
RESULTADOS DE LAS CONSULTAS
Los cursores se pueden trabajar con un ciclo while
$results = $collection->find();
while ( $results->hasNext()) {
$r = $results->getNext();
print_r($r);
}
FUNCIONES BASICAS SOBRE CURSORES
print($collection->find()->count()); //3
$res = $collection->find()->limit(1); // x=>1
$res2 = $collection->find()->skip(1)->limit(1); // x=>2
$res3 = $collection->find()->sort(array ( 'x' => 1 ));
ACTUALIZACIN DE DOCUMENTOS
Consultas + comandos de actualizacin
//Tiene un comportamiento inesperado
$query = array( '_id' => 'aristi');
$update = array( 'followers' => '19' );
$collection->update( $query, $update);
//pero si se realiza as
$query = array( '_id' => 'aristi');
$update = array( '$set' => array('followers' => '19' ));
$collection->update( $query, $update);
ACTUALIZACIN DE DOCUMENTOS
Otras operaciones
$collection = $db->activity;
$doc = array (
'_id' => new MongoId( '4f8c8e1371cbc84715000002 ' ),
'activeUser' => $reference,
'publishingDate' : '2012-04-16 16:24:35 ',
'activatingElement' : 'follow',
'privacyLevel' : 'public'
);
$collection->insert($doc);
CONSULTAR LOS DATOS DE UN DOCUMENTO
REFERENCIADO
$resultReference = $db->getDBRef($result[activeUser])
BORRAR DOCUMENTOS