sql >> Database teknologi >  >> NoSQL >> MongoDB

teknikker til lagring af biblioteker i mongoDB's system.js

Hver forespørgsel, der bruger JS, kan genbruge eller få en helt ny JS-kontekst, hvorpå lagrede JS-objekter indlæses. For at gøre, hvad du vil, skal du enten:

  1. mongod for at køre den lagrede kode automatisk, når den installeres
  2. kortlægge for at have en init-metode

Den første er absolut den mere interessante funktion. Det viser sig, at mongodb v8 build automatisk gør det (men ikke officielt understøttet), men ikke den officielle spidermonkey build.

Lad os sige, at du gemmer kode som:

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

Så i v8 kan du bruge myprint() frit i din kode, men med SM skal du kalde mylib() eksplicit.

Som en løsning kan du oprette en anden metode:

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

Og kald det fra din map() funktion.

Oprettet billet for at standardisere motorer og tillade automatisk kørsel:https://jira.mongodb.org /browse/SERVER-4450




  1. Hvordan starter jeg Mongo DB fra Windows?

  2. Hvordan får man indsamling af et dokument fra mongodb cursor?

  3. Mongodb Aggregation rammegruppe og sortering

  4. int til flydende konvertering i Mongo find