使用 require() 加载本地文件
您可以使用MongoDB Playground 中的 require() 函数来包含本地文件中的代码。您可以将代码存储在单个位置,并在不同的 Playground 中重复使用该代码。
关于此任务
本教程介绍如何使用 require()
加载本地脚本。 您还可以使用require()
加载 Node 模块,例如从 npm 下载的模块 。有关更多信息,请参阅使用 require() 包含 Node.js 模块。
步骤
1
创建脚本文件
以下脚本文件会验证文档以确保存在必填字段。 将脚本保存到本地文件系统并命名为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;
2
创建一个使用验证脚本的 Playground
以下 Playground 使用require()
来调用 中指定的validate_data
validate.js
函数。对两个样本文档调用validate_data
函数。 如果文档包含必填字段name
和email
,则会将其插入到people
集合中。
重要
使用validate.js
文件的路径更新 Playground 的第一行:
// 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");
结果
只有doc1
包含两个必填字段并插入到集合中。 doc2
不包含必填字段email
,因此不会插入。
要确认插入的文档正确,请查询people
集合:
use mongodbVSCodePlaygroundDB db.people.find()
输出:
[ { _id: 1, name: 'Taylor', email: 't123@gmail.com' } ]