MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

técnicas para armazenar bibliotecas no system.js do mongoDB


Cada consulta usando JS pode reutilizar ou obter um novo contexto JS, no qual os objetos JS armazenados são carregados. Para fazer o que você deseja, você precisa:
  1. mongod para executar o código armazenado automaticamente ao instalá-lo
  2. mapreduce para ter um método init

O primeiro é definitivamente o recurso mais interessante. Acontece que a versão mongodb v8 faz isso automaticamente (mas não é oficialmente suportada), mas não a versão oficial do spidermonkey.

Digamos que você armazene códigos como:
db.system.js.save({ _id: "mylib", value: "myprint = function() { print('installed'); return 'installed';" }

Então na v8 você pode usar myprint() livremente em seu código, mas com SM você precisaria chamar mylib() explicitamente.

Como solução alternativa, você pode criar outro método:
db.system.js.save({ _id: "installLib", value: "if (!libLoaded) mylib(); libLoaded = true;" }

E chame-o da sua função map().

Bilhete criado para padronizar motores e permitir execução automática:https://jira.mongodb.org /browse/SERVER-4450