04.07.2013 Views

hayBusiness Tecnología y Emprendizaje

Es una revista de jóvenes emprendedores para jóvenes emprendedores, mayoritariamente de habla hispana, que cuenta con la colaboración de un variado grupo de expertos en tecnología, economía y emprendizaje, activos en diferentes mercados internacionales.

Es una revista de jóvenes emprendedores para jóvenes emprendedores, mayoritariamente de habla hispana, que cuenta con la colaboración de un variado grupo de expertos en tecnología, economía y emprendizaje, activos en diferentes mercados internacionales.

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

plantear un esquema de datos<br />

para la colección Subjects que<br />

contenga al profesor en una<br />

relación 1:1.<br />

El esquema propuesto para la<br />

colección Subject puede ser<br />

definido en la base de datos<br />

mediante db.Subject.insert(),<br />

donde db hace referencia a<br />

la base de datos, .Subject a la<br />

colección y .insert a la acción<br />

sobre la colección. Nótese que<br />

el tamaño predeterminado de<br />

los documentos en MongoDB<br />

está limitado a 4 megabytes.<br />

>db.Subject.insert(<br />

{_id:10, a_type:’theory’,<br />

profesor: { pid:2,<br />

name:’Angel’, dob: new<br />

Date(1980,6,10,10,10),<br />

area:[‘maths’] } } )<br />

Para comprobar que efectivamente<br />

hemos creado la colección<br />

Subject podemos utilizar<br />

> db.getCollectionNames()<br />

[“Subject”,“system.indexes”]<br />

que devuelve la lista de colecciones.<br />

Si queremos consultar<br />

los Documentos que contiene<br />

la colección Subject,<br />

utilizaremos<br />

> db.Subject.find()<br />

{“_id”:10, “a_type”:<br />

“theory”,“professor”:n<br />

{ “pid” : 2, “name”:<br />

“Angel”, “dob” : ISODate<br />

(“1980-07-10T08:10:00Z”),<br />

“area” : [ “maths” ] } }<br />

Así, si queremos reescribir la<br />

sentencia SELECT anterior en<br />

MongoDB podemos usar<br />

> d b . S u b j e c t . fi n d (<br />

{“_id”:10},<br />

{“professor.name”:1})<br />

{“_id” : 10, “professor” :<br />

{ “name” : “Angel” } }<br />

Al igual que SQL MongoDB nos<br />

permite actualizar un documento<br />

utilizando:<br />

db.update<br />

(,<br />

, […])<br />

Por ejemplo, si queremos modificar<br />

el documento asociado a<br />

la asignatura con índice 10:<br />

>db.Subject.update(<br />

{_id:10},<br />

{a_type:‘Laboratory’})<br />

Para eliminar un documento<br />

MongoDB proporciona el<br />

comando remove:<br />

>db.Subject.remove(<br />

{_id:10})<br />

Como se ha mostrado hasta el<br />

momento, MongoDB es una<br />

alternativa interesante a las<br />

bases de datos relacionales<br />

con sus ventajas y sus inconvenientes.<br />

Una de sus mayores<br />

debilidades es la seguridad y la<br />

facilidad para generar consultas<br />

usando peticiones de tipo<br />

GET. Por ello, es importante<br />

definir un ámbito de acceso y<br />

conocer bien el tipo de servicio<br />

que interactuará con la base<br />

de datos. Como última observación<br />

a esta breve introducción<br />

a MongoDB, decir que, al<br />

igual que otras bases de datos<br />

NoSQL, MongoDB es ideal para<br />

servicios de mensajería y log<br />

que requieren de almacenamiento<br />

rápido y detallado sin<br />

grandes requisitos en cuanto<br />

a seguridad y privacidad de la<br />

información.<br />

Tabla 1 Equivalencia entre SQL y<br />

MongoDB<br />

Tabla 2 Esquema de la base de<br />

datos relacional.<br />

REFERENCIAS:<br />

[1] Strozzi, Carlo: NoSQL – A<br />

relational database management<br />

system. 2007–2010.<br />

http://goo.gl/QcCsf<br />

[2] 10gen.com: Data Modeling<br />

and Rails - MongoDB.<br />

2012.<br />

http://goo.gl/nNZ1Z<br />

[3] Stearn, Mathias ; Merriman,<br />

Dwight: mongoDB<br />

Manual – Inserting - Trees in<br />

MongoDB. March 2010.<br />

http://goo.gl/O1Zr<br />

7<br />

<strong>hayBusiness</strong>.net | Julio 2013

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!