Esta es la primera parte de la construcción de un script GoogleSpreadsheet >>Node.js>>MongoDB las razones para utilizar este script son muchas el simple hecho de que pueda hacer operaciones complejas mediante formulas para hacer un bulk de datos a un servidor ya es bastante atractivo asi como el poder usar Google Spreadsheet como Herramienta de Web Scraping mas amigable sumando el hecho de poder enviar estos datos para ser re procesados o formateados mediante un servidor como Node.js permite a los programadores noveles poder ínter actuar con otras áreas de trabajo extrayendo información y empujándola dentro de una base de datos sin que el procedimiento sea tan engorroso.



Recomiendo esta configuración para entornos de prueba o no cruciales para una aplicación ya desarrollada y una base de datos de poca concurrencia, en lo personal e utilizado este ejemplo con mecánicas idénticas para actualizaciones de hasta 3 o 4 veces al dia con al rededor de 5 mil a 10 registros, con un Spreadsheet de varias hojas.


Este ejemplo ilustra como cargar un Spreadsheet de Google Drive a MongoDB, La base de datos esta corriendo en un servidor de Openshift (si desean configurar un servidor de aplicaciones pueden buscar las otras entradas en el blog)




La información se encuentra pre-formateada en un Spreadsheet idéntico al de la imagen anterior, en donde nos encontramos con los títulos de columnas y los datos ordenados en filas, nuestra tarea sera reorganizar esta información para enviarla a la base de datos MongoDB en formato JSON (estrictamente BSON pero depende de como este configurada la instancia del servidor)



Cada Fila quedaría como un documento JSON accesible desde un método Query como nuestro intermediario en este caso es Node.js previamente tendremos que tener una API C.R.U.D. o REST para servir estos datos a por ejemplo una aplicación web o una aplicación Móvil.

El formato de cada documento esta estructurado así:


{
  "Sección": NumberInt(1),
  "Código": "MER205",
  "Nombre Materia": "ADMIN  DE VENTAS - PROCERES",
  "Hora": "06:00 PM",
  "Aula": "LP/501",
  "Días": NumberInt(13),
  "Disp ": NumberInt(12),
  "Catedrático": "HELMUT FELIPE MORENO ZELAYA",
  "_id": ObjectId("54cc61ff770c991a545eb42d")
}

Cada campo esta representado en color Rojo esta es la representación de la columna, considerando que es diferente ya que no son bases de datos SQL (son NoSLQ) los datos suelen guardarse como documentos, cada documento tiene una asignación de campos en conjunto con una asignación de Valor (prototipo Campo-Valor), Se puede guardar los tipos de datos para obtener algo mas de eficiencia en relación a espacio y la operabilidad de tipos en este caso obtenemos un campo valor Integer de color Azul, cualquier otra representación de un campo sera realizada con un método "parse String " simple sin contar el campo "_id"  que es generado de forma automática dentro de la base de datos, para poder manejar la lógica podríamos utilizar un código identificador propio  pero gracias a la generación de códigos automático y el manejo de index incrementa les por defecto no es necesario un código (aquí entra el cambio de lógica en el desarrollo y almacenaje de datos en la bases de datos NoSQL).


Ademas de esto este ejemplo requiere configuración previa de un usuario y contraseña así como tambien los niveles de acceso en el servidor de Mongo 

Yo en lo personal considero imprescindible crear usuarios y agregarles roles de acceso aunque fuere una aplicación que exclusivamente esto permite hacer ajustes si la aplicación o el proyecto evoluciona y tambien permite tener mayor control sobre que información es visible. 




En este ejemplo utilice un solo usuario llamado Docentes, por defecto MongoDB encripta la contraseña usando MD5 para que sus caracteres sean ilegibles con un administrador de bases de datos como RockMongo (en la Imagen).

En la próxima parte veremos como integrar un usuario nuevo en la base de datos de MongoDB y la integración del código de Node.js en Openshift




0 comentarios:

Publicar un comentario

Hola! gracias por dejarme un comentario se bienvenido a decir lo que pase en tu cabeza siguiendo las reglas;

Reglas:

No obscenidades
No pornografia
No spam
Nada Ilegal