MongoDB: descripción general

MongoDB es una base de datos multiplataforma orientada a documentos que proporciona alto rendimiento, alta disponibilidad y fácil escalabilidad. MongoDB trabaja en el concepto de colección y documento.

Base de datos

La base de datos es un contenedor físico para colecciones. Cada base de datos obtiene su propio conjunto de archivos en el sistema de archivos. Un solo servidor MongoDB normalmente tiene varias bases de datos.

Colección

La colección es un grupo de documentos MongoDB. Es el equivalente a una tabla RDBMS. Existe una colección dentro de una sola base de datos. Las colecciones no imponen un esquema. Los documentos de una colección pueden tener diferentes campos. Normalmente, todos los documentos de una colección tienen un propósito similar o relacionado.

Documento

Un documento es un conjunto de pares clave-valor. Los documentos tienen un esquema dinámico. El esquema dinámico significa que los documentos de la misma colección no necesitan tener el mismo conjunto de campos o estructura, y los campos comunes en los documentos de una colección pueden contener diferentes tipos de datos.

La siguiente tabla muestra la relación de la terminología RDBMS con MongoDB.

RDBMS MongoDB
Base de datos Base de datos
Mesa Colección
Tupla / Fila Documento
columna Campo
Unión de mesa Documentos incrustados
Clave primaria Clave principal (clave predeterminada _id proporcionada por MongoDB)
Cliente y servidor de base de datos
mysqld / Oracle mongod
mysql / sqlplus mongo

Documento de muestra

El siguiente ejemplo muestra la estructura del documento de un sitio de blog, que es simplemente un par clave-valor separado por comas.

{
   _id: ObjectId(7df78ad8902c)
   title: 'MongoDB Overview', 
   description: 'MongoDB is no sql database',
   by: 'tutorials point',
   url: 'http://www.tutorialspoint.com',
   tags: ['mongodb', 'database', 'NoSQL'],
   likes: 100, 
   comments: [	
      {
         user:'user1',
         message: 'My first comment',
         dateCreated: new Date(2011,1,20,2,15),
         like: 0 
      },
      {
         user:'user2',
         message: 'My second comments',
         dateCreated: new Date(2011,1,25,7,45),
         like: 5
      }
   ]
}

_ides un número hexadecimal de 12 bytes que asegura la singularidad de cada documento. Puede proporcionar _id al insertar el documento. Si no lo proporciona, MongoDB proporciona una identificación única para cada documento. Estos 12 bytes, los primeros 4 bytes para la marca de tiempo actual, los siguientes 3 bytes para la identificación de la máquina, los siguientes 2 bytes para la identificación del proceso del servidor MongoDB y los 3 bytes restantes son un valor incremental simple.