参考 >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开始,mongo
shell提供了isInteractive()
返回布尔值的方法,该布尔值指示mongo
shell是以交互方式还是脚本方式运行。
在为mongo
外壳编写脚本时,请考虑以下因素:
若要设置db
全局变量,请使用getDB()
方法或connect()
方法。您可以将数据库引用分配给以外的其他变量db
。
默认情况下,mongo
shell 中的写操作使用{w:1}的写关注
。如果执行批量操作,请使用这些Bulk()
方法。有关更多信息,请参见
写入方法确认。
您不能在JavaScript文件中使用任何外壳帮助程序(例如,等),因为它们不是有效的JavaScript。use <dbname>
show
dbs
下表将最常见的mongo
shell助手映射到其JavaScript等效项。
壳牌帮手 | 等价的JavaScript |
---|---|
show dbs , show databases |
|
在交互模式下,mongo
打印包括所有光标内容在内的操作结果。在脚本中,使用JavaScript print()
函数或返回格式化JSON 的mongo
特定printjson()
函数。
例
要在mongo
Shell脚本中打印结果游标中的所有项目,请使用以下惯用法:
在系统提示下,用于mongo
评估JavaScript。
--eval
选项¶使用该--eval
选项向mongo
外壳传递JavaScript片段,如下所示:
这将返回db.getCollectionNames()
使用mongo
连接到接口上
运行的mongod
or
mongos
实例的
外壳程序的输出。27017
localhost
您可以.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
则将无法访问该文件。