在mongodb中运行javascript脚本(.js文件),包括js中的另一个文件

Sex*_*yMF 50 mongodb

我想编写一个用于插入和更新mongodb数据的长脚本.

  1. 是否可以调用包含脚本的外部js文件?
  2. 是否可以从运行的js文件中包含另一个js文件?

Sum*_*eet 97

使用加载功能

load(filename)
Run Code Online (Sandbox Code Playgroud)

您可以直接从mongo shell 调用任何.js文件,mongo将执行JavaScript.

示例:mongo localhost:27017/mydb myfile.js

这将在mongo shell中执行myfile.js脚本,该脚本使用localhost中的端口2701连接到mydb数据库.

对于加载外部js,你可以写

load("/data/db/scripts/myloadjs.js")
Run Code Online (Sandbox Code Playgroud)

假设我们有两个js文件myFileOne.js和myFileTwo.js

myFileOne.js

print('From file 1');
load('myFileTwo.js');     // Load other js file .
Run Code Online (Sandbox Code Playgroud)

myFileTwo.js

print('From file 2');
Run Code Online (Sandbox Code Playgroud)

MongoShell

>mongo myFileOne.js
Run Code Online (Sandbox Code Playgroud)

产量

From file 1
From file 2
Run Code Online (Sandbox Code Playgroud)


Yee*_*234 8

另一种方法是在终端提示中将文件传递给 mongo。

$ mongo < myjstest.js
Run Code Online (Sandbox Code Playgroud)

这将启动一个 mongo 会话,运行文件,然后退出。但是不确定从第一个文件调用第二个文件。我没试过。


Tou*_*umi 6

是的你可以.脚本文件的默认位置是data/db

如果你在那里放任何脚本,你可以称之为

load("myjstest.js")      // or 
load("/data/db/myjstest.js")
Run Code Online (Sandbox Code Playgroud)