sql >> Base de Datos >  >> NoSQL >> MongoDB

técnicas para almacenar bibliotecas en system.js de mongoDB

Cada consulta que utiliza JS puede reutilizarse u obtener un contexto JS completamente nuevo, en el que se cargan los objetos JS almacenados. Para hacer lo que desea, necesita:

  1. mongod para ejecutar el código almacenado automáticamente al instalarlo
  2. mapreduce para tener un método init

La primera es definitivamente la característica más interesante. Resulta que la compilación mongodb v8 lo hace automáticamente (pero no es oficialmente compatible), pero no la compilación oficial de spidermonkey.

Digamos que almacena un código como:

db.system.js.save({ _id: "mylib", value: "myprint = function() { print('installed'); return 'installed';" }

Luego, en v8, puede usar myprint() libremente en su código, pero con SM necesitaría llamar a mylib() explícitamente.

Como solución, puede crear otro método:

db.system.js.save({ _id: "installLib", value: "if (!libLoaded) mylib(); libLoaded = true;" }

Y llámelo desde su función map().

Ticket creado para estandarizar los motores y permitir la ejecución automática:https://jira.mongodb.org /navegar/SERVIDOR-4450