# data[].attributes.headline
¿Cuáles son los beneficios de usar MongoDB?

# data[].attributes.subject
¿Cuáles son los beneficios de usar MongoDB?

# data[].attributes.body
Los datos se almacenan en estructuras parecidas a un JSON, esto hace que el flujo de datos dentro de la aplicación no tenga mayores cambios en la estructura de datos; escala no solamente de forma vertical (CPU y RAM) si no que también de forma horizontal (creando más nodos); hace que la base de datos crezca con la aplicación sin tener que ejecutar scripts que crean campos con valores por defecto cada vez que se quiera agregar un campo nuevo; MongoDB te permite tener cluster distribuidos mejorando la velocidad de consulta al disminuir la latencia que existe entre entre el cluster de base de datos y el servicio que ejecuta la query; tiene múltiples operadores que permiten crear consultas poderosas con poco código; finalamente, MongoDB es de código abierto, lo que implica que no hay necesidad de pagar licencias para usarlo.

# data[].attributes.headline
¿Qué es MongoDB y cómo se guardan los datos ahí?

# data[].attributes.subject
¿Qué es MongoDB y cómo se guardan los datos ahí?

# data[].attributes.body
Es una base de datos no relacional orientada a documentos, que apareció a mediados de la década de los 2000. Se utiliza para almacenar grandes cantidades de datos. Este no se basa en tablas y columnas.
En lugar de guardar los datos en registros, guarda los datos en documentos. Estos documentos son almacenados en BSON, que es una representación binaria de JSON. Una de las diferencias más importantes con respecto a las bases de Datos relacionales es que no es necesario seguir un esquema. Los documentos de una misma colección pueden tener esquemas diferentes.
Su principal característica es la velocidad, ya que alcanza un balance perfecto entre rendimiento y funcionalidad gracias a su sistema de consulta de contenidos.

# data[].attributes.body
Es un almacén que nos permite guardar grandes cantidades de información de forma organizada para que la podamos encontrar y utilizar fácilmente. Es un sistema formado por un conjunto de Datos almacenados en discos que permiten el acceso directo a ellos y un conjunto de programas que manipulen ese conjunto de datos.
¿Cuál es la diferencia entre bases de datos relacional y no relacional?
Las bases de datos relacionales se basan en la organización de la información en partes pequeñas que se integran mediante identificadores a diferenciar las bases de datos no relacionales que, no tienen indicador que sirva para relacionar dos o más conjuntos de datos. Además las bases de datos relacionales, son más robustas, tienen mayor capacidad de almacenamiento y son menos vulnerables ante fallas. Las bases de Datos no relacionales se organiza normalmente mediante documentos y es muy útil cuando hay un esquema exacto de lo que van a almacenar.
Los sistemas de datos relacionales se usan usualmente para sistemas que requieren transacciones de varias filas. Por otro lado, si los sistemas son de gestión de contenido, aplicaciones móviles, sistemas de análisis en tiempo real, bases de datos con un reconocimiento rápido, con un esquema descentralizado, usualmente se usa las bases de datos no relacionales.

# data[].attributes.body
Es un framework de backend minimalista para Node.js que permite estructurar una aplicación de una manera ágil. Proporciona funcionalidades como el enrutamiento, opciones para gestionar sesiones y cookies. Este se utiliza para una amplia gama de cosas en el ecosistema de javascript/Node.js, puede desarrollar aplicaciones endpoints de API, sistemas de enrutamiento y frameworks con él.

# data[].attributes.body
Se usa para agilizar el desarrollo de un proyecto de programación, ya que es un entorno de trabajo predispuesto que contiene herramientas y características útiles a este propósito. Emplea una base de datos que facilita el trabajo del programador, ahorrando tiempo en desarrollo. En un framework no se trabaja con base en comandos de un mismo proyecto, sino una combinación de ellos. Además, sirve para obtener proyectos de desarrollo de mayor calidad al trabajar con una base bien constituida.
Su objetivo es disminuir los problemas o errores que pueden surgir durante el desarrollo. Por ello, acelera procesos como la organización del código o el trabajo en equipo dentro de un proyecto.
A su vez, el framework pone a disposición recursos desarrollados por otros programadores. Estos pueden ser informes o códigos que pueden usarse para solucionar los problemas habituales que se dan al llevar a cabo determinadas tareas.
Tipos de framework:

- Frameworks para software development: Su objetivo es proporcionar una mejor estructura base dentro de un sistemas operativo determinado para los desarrolladores de software con la que puedan organizar sus proyectos.
- Frameworks para desarrollo web: Existen diferentes frameworks para los diferentes lenguajes de programación que se utilizan.

- Marco de gestión de contenido: Se trata de interfaces diseñadas para personalizar un CMS (sistema online que permite poner en marcha una página web de forma sencilla y rápida).
Frameworks populares: Javascript, Python, Php y Java.

# data[].attributes.body
Es un entorno controlado por eventos diseñados para crear aplicaciones escalables, permitiendo establecer y gestionar múltiples conexiones al mismo tiempo. Está diseñada para simplificar la comunicación. Se caracteriza por su velocidad. Ya que está construido sobre un motor de javascript V8 de Google Chrome; las APIs son asincrónicas sin bloqueo. El servidor pasa a la siguiente API después de llamarla, y un mecanismo de notificación de eventos ayuda al servidor a obtener una respuesta de la llamada a la API anterior; y Uso un modelo de un solo subproceso con bucle de eventos, Esto hace que el servidor sea altamente escalable comparado con los servidores tradicionales.
Node JS se puede utilizar en diferentes tipos de aplicaciones, por ejemplo: aplicación de transmisión de datos, aplicaciones intensivas de datos en tiempo real, aplicaciones vinculadas a E/S, aplicaciones basadas en JSON:API y aplicaciones de página única.

# data[].attributes.body
El modelo cliente/servidor representa la forma en la que se producen las comunicaciones entre dos nodos de una red. En este modelo, uno de los nodos que forma parte de la comunicación tiene el rol de cliente y otro, el rol de servidor. Con este se puede acceder a los datos, compartirlos y protegerlos de forma eficiente en todos los dispositivos. Permitiendo que varios clientes abran aplicaciones o recuperen archivos de un servidor individual, lo que ayuda a mantener la coherencia en todos los dispositivos.
El cliente es un computador pequeño, con una estructura al igual a la que hay en oficinas y hogares, la cual accede a un servidor o a los servidores del mismo a través del internet o una red interna.
Un servidor es una computadora con mayor capacidad que le permite almacenar gran cantidad de diversos archivos o correr varias aplicaciones en simultáneo para que los clientes puedan acceder a los servicios.
Los tipos de clientes son; portátiles, teléfonos inteligentes, tablets, ordenadores de sobremesa y aplicaciones de chat.
Los tipos de servidores incluyen: archivar los servidores, servidores de correos, servidores web y servidores en la nube.
Funcionamiento
En modelo cliente/servidor gran parte de la información las aplicaciones de un dispositivo se almacenan o instalan en un servidor remoto, cuando el cliente necesita acceder a esta información, solicita los datos a un servidor. El servidor verifica la solicitud para asegurarse de que procede de un dispositivo reconocido. Luego, descarga la información solicitada en el dispositivo.
Las comunicaciones entre un cliente y un servidor funciona a través de protocolos específicos como TCP/IP.
Ejemplos: correo electrónico, impresoras de red, internet y redes LAN.

# data[].attributes.body
Es la parte interna de una app o web que solo puede ser modificada por el programador y que no puede ver el usuario. Allí se guadar toda la información que en algún momento el usuario va a requerir.
- Acceder a la información que se pide, a través de la app o web: El backend es capaz de encontrar y entrar a la información que requiera el usurio. Además, esta programado para proteger la información.
- Combinar la información encontrada y transformarla: Una vez encontrada, el Backend combina la información para que resulte útil al usuario. Para ello debe recolacter la informacion de varias partes y luego filtrarla.
- Devolver la información al usuario: La obtiene en su busquedad es traducida a un lenguaje que los usuarios pueda entender. Para ello se usan las famosas APIs, trabajando en conjunto con el Frontend.
Esta herramienta transporta la información desde el Backend hasta el Frontend, que es donde se traduce la información, ya que pasa de estar escrita en código a mostrala por medio de imágenes, letras y botones que el usurio entiende.
- La subcapa lógica, relacionada con el lenguaje específico: La subcapa lógica del Frontend se encarga de hacer una primera traducción del lenguaje en el que las APIs envían la  información al lenguaje específico de cada sistema operativo. Este es un proceso que, a pesar de ocurrir en el Frontend, el usuario final no ve. Podríamos llamarlo el “Backend del Fronted”.
- La subcapa visual, relacionada con el diseño estético de la app: La capa visual del Frontend es donde, finalmente, se produce la conversión de la información a los elementos con el que el usuario final se relaciona.