Use require() to Load Local Files
On this page
You can use the require() function in your MongoDB Playgrounds to include code from local files. You can store your code in a single location and reuse that code in different playgrounds.
About this Task
This tutorial shows how to use require()
to load local scripts. You
can also use require()
to load Node modules, like those downloaded
from npm. For more information, see
Use require() to Include Node.js Modules.
Steps
Create a script file
The following script file validates documents to ensure that the
required fields are present. Save the script to your local
filesystem as validate.js
:
// validate.js const required_fields = [ 'name', 'email' ] const validate_data = (document) => { let is_valid = true; for (const field of required_fields) { if (document[field] == null) { is_valid = false; } }; return is_valid; }; module.exports = validate_data;
Create a playground that uses the validation script
The following playground uses require()
to call the
validate_data
function specified in validate.js
. The
validate_data
function is called on two sample documents. If
the document contains the required fields name
and email
,
it is inserted into the people
collection.
Important
Update the first line of the playground with the path to the
validate.js
file:
// playground-1.mongodb.js const validate = require('/path/to/validate.js'); use('mongodbVSCodePlaygroundDB'); const doc1 = { _id: 1, 'name': 'Taylor', 'email': 't123@gmail.com' }; const doc2 = { _id: 2, 'name': 'Taylor' }; const docs = [ doc1, doc2 ]; let inserted_count = 0; for (const doc of docs) { if (validate(doc)) { db.getCollection('people').insertOne(doc); inserted_count++; } }; console.log("Inserted " + inserted_count + " documents");
Run the playground
To run your Playground, press the Play Button at the top right of the Playground View. VS Code Extension splits your Playground and outputs the results of your Playground in the Playground Results.json pane. If you disabled split-view, VS Code Extension outputs the results of your Playground in a new tab.
Results
Only doc1
contains both required fields and is inserted into the
collection. doc2
does not contain the required field email
, and
is not inserted.
To confirm that the correct document was inserted, query the people
collection:
use mongodbVSCodePlaygroundDB db.people.find()
Output:
[ { _id: 1, name: 'Taylor', email: 't123@gmail.com' } ]