Store a JavaScript Function on the Server
Note
Do not store application logic in the database. There are performance limitations to running JavaScript inside of MongoDB. Application code also is typically most effective when it shares version control with the application itself.
There is a special system collection named system.js that can store JavaScript functions for reuse.
To store a function, you can use the db.collection.insertOne(), as in the following examples:
db.system.js.insertOne( { _id: "echoFunction", value : function(x) { return x; } } ); db.system.js.insertOne( { _id : "myAddFunction" , value : function (x, y){ return x + y; } } );
-
The
_idfield holds the name of the function and is unique per database. -
The
valuefield holds the function definition.
These functions, saved as BSON type, are available for use from any JavaScript context, such as mapReduce and $where.
Functions saved as the deprecated BSON type JavaScript (with scope), however, cannot be used by mapReduce and $where starting in MongoDB 4.4.