参考 >mongo shell > 为mongoShell 编写脚本
在本页面
您可以mongo在JavaScript中为Shell 编写脚本,以在MongoDB中操纵数据或执行管理操作。
本教程提供了有关编写使用mongo外壳程序访问MongoDB的JavaScript的介绍。
从mongo外壳或JavaScript文件,您可以使用Mongo()
构造函数实例化数据库连接:
考虑以下示例,该示例实例化到默认端口上在localhost上运行的MongoDB实例的新连接,并将全局db变量设置为myDatabase使用
getDB()方法:
如果连接到实施访问控制的MongoDB实例,则可以使用该db.auth()方法进行身份验证。
此外,您可以使用该connect()方法连接到MongoDB实例。以下示例连接到localhost使用非默认端口运行的MongoDB实例,27020并设置了全局db变量:
也可以看看
mongo¶注意
从版本4.2开始,mongoshell提供了isInteractive()返回布尔值的方法,该布尔值指示mongoshell是以交互方式还是脚本方式运行。
在为mongo外壳编写脚本时,请考虑以下因素:
若要设置db全局变量,请使用getDB()
方法或connect()方法。您可以将数据库引用分配给以外的其他变量db。
默认情况下,mongoshell 中的写操作使用{w:1}的写关注
。如果执行批量操作,请使用这些Bulk()方法。有关更多信息,请参见
写入方法确认。
您不能在JavaScript文件中使用任何外壳帮助程序(例如,等),因为它们不是有效的JavaScript。use <dbname>show
dbs
下表将最常见的mongoshell助手映射到其JavaScript等效项。
| 壳牌帮手 | 等价的JavaScript |
|---|---|
show dbs, show databases |
|
在交互模式下,mongo打印包括所有光标内容在内的操作结果。在脚本中,使用JavaScript print()函数或返回格式化JSON 的mongo
特定printjson()函数。
例
要在mongoShell脚本中打印结果游标中的所有项目,请使用以下惯用法:
在系统提示下,用于mongo评估JavaScript。
--eval选项¶使用该--eval选项向mongo外壳传递JavaScript片段,如下所示:
这将返回db.getCollectionNames()使用mongo连接到接口上
运行的mongodor
mongos实例的
外壳程序的输出。27017localhost
您可以.js向mongo外壳程序指定文件,然后
mongo直接执行JavaScript。考虑以下示例:
这个操作执行myjsfile.js的脚本
mongo连接到壳test 数据库
上mongod通过访问实例localhost
上的端口接口27017。
或者,您可以使用Mongo()构造函数在javascript文件内部指定mongodb连接参数。有关更多信息,请参见
打开新连接。
您可以使用函数.js从mongo外壳程序内执行文件load(),如下所示:
此函数加载并执行myjstest.js文件。
该load()方法接受相对路径和绝对路径。如果mongo外壳程序的当前工作目录是/data/db,并且myjstest.js驻留在该
/data/db/scripts目录中,那么mongo外壳程序中的以下调用将是等效的:
注意
该功能没有搜索路径load()
。如果所需的脚本不在当前工作目录或完整的指定路径中,mongo则将无法访问该文件。