Quantcast
Channel: Planeta Linux Venezuela
Viewing all articles
Browse latest Browse all 1457

Yohan Graterol: Como ejecutar JavaScript en #MongoDB y como almacenarlo

$
0
0

MongoDB está enfocado a las aplicaciones web y la big data, esa fue una de las razones para elegir JavaScript como lenguaje para utilizar la consola, pero muchas personas no saben como correr un script de JavaScript (Desde ahora, JS) dentro del motor de BD.

JavaScript

JavaScript es un lenguaje de programación interpretado, dialecto del estándar ECMAScript. Se define como orientado a objetos, basado en prototipos, imperativo, débilmente tipado y dinámico.

Se utiliza principalmente en su forma del lado del cliente (client-side), implementado como parte de un navegador web permitiendo mejoras en la interfaz de usuario y páginas web dinámicas, en bases de datos locales al navegador… aunque existe una forma de JavaScript del lado del servidor (Server-side JavaScript o SSJS). Su uso en aplicaciones externas a la web, por ejemplo en documentos PDF, aplicaciones de escritorio (mayoritariamente widgets) es también significativo.

Fuente

Ejemplo de una función en JS

1
2
3
function potencia2(x){
    return x*x;
}

Aquí esta un ejemplo que calcula la potencia 2 de un numero, vemos que la sintaxis es muy a lo C, así que si has programado en PHP, Java, C, seguramente se te hará muy sencillo la programación en JS.

Ejecutar la función en MongoDB

Para ejecutar un código JS, se debe usar la sintaxis db.eval( “codigo”, parametros), así de sencillo.

Donde:

  • Código: El código JS a ejecutar
  • Parámetros: Los parámetros a pasar, en el caso que se definan funciones

Ejemplo:

1
2
> db.eval("function potencia2(x) {return x*x}", 4)
16

El mismo ejemplo de JS, escrito in-line, se debe colocar el código en una sola linea. El 4, es el parámetro que le pasamos para calcular la potencia 2, de x, en este caso 4 * 4 = 16.

Almacenar función en MongoDB

La falta de procedimientos almacenados de BD relacionales, no hace que MongoDB no tenga forma de correr código almacenado; MongoDB nos deja almacenar código JS para luego ejecutarlo como una función mas del programa, siempre y cuando se este ubicado en la BD donde se guardó el JS.

Para almacenar el JS, debemos guardarlo en db.system.js, con un documento que tiene un esquema como el siguiente {_id: nombre de la funcion, value: codigo JS}

Para luego ejecutarlo, se deben cargar los script con el comando db.loadServerScripts(); (Solo apartir de MongoDB 2.1)

Ejemplo:

1
2
3
4
> db.system.js.save({_id: "potencia", value: function(x){return x*x;}})
> db.loadServerScripts();
> potencia(2)
4

Este ejemplo es la misma función inicial, pero ahora esta integrada en MongoDB, con algo de creatividad se pueden crear cosas muy interesante con JS y MongoDB.

Finalizando

Espero que sea de mucha ayuda, como ven no tiene nada del otro mundo la ejecución/almacenamiento de código JS en MongoDB, solo hay que saber un poco de JS y estos métodos que expuse :)


Viewing all articles
Browse latest Browse all 1457

Trending Articles