mongo Shell

在本页面

介绍

mongo shell 是 MongoDB 的交互式 JavaScript 接口。您可以使用mongo shell 来查询和更新数据以及执行管理操作。

mongo shell 包含在MongoDB 服务器安装的一部分中。 MongoDB 还将mongo shell 作为独立包提供。要下载独立的mongo shell 包:

  • 打开下载中心。对于mongo Enterprise Shell,选择 MongoDB Enterprise Server 选项卡。

  • 从下拉列表中选择您喜欢的 Version 和 OS。

  • 从“包”下拉列表中选择Shell,然后单击“下载”以开始下载包。

如果所选 OS 和 Version 的Shell选项不可用,请与 MongoDB 技术支援联系以获取帮助。

获得安装并启动 MongoDB后,将mongo shell 连接到 running MongoDB 实例。

MongoDB 手册中的大多数示例都使用mongo shell;但是,许多司机提供了与 MongoDB 类似的接口。

启动 mongo Shell

重要
在尝试启动mongo shell 之前,确保 MongoDB 正在运行。

要启动mongo shell 并使用default port连接到localhost上的MongoDB实例 running:

  • 在终端窗口(或 Windows 的命令提示符)中的提示符处,转到<mongodb installation dir>
cd <mongodb installation dir>
  • 输入./bin/mongo开始mongo
./bin/mongo

如果已将<mongodb installation dir>/bin添加到PATH环境变量,则只需键入mongo而不是./bin/mongo

选项

当 run mongo没有任何 arguments 时,mongo shell 将尝试连接到 port 27017localhost接口上的 MongoDB 实例 running。要指定其他 host 或 port 编号以及其他选项,请参阅启动 mongo 的例子mongo reference,其中提供了有关可用选项的详细信息。

.mongorc.js 档案

启动时,mongo检查用户

名为.mongorc.js的 JavaScript 文件的目录。如果找到,mongo在显示第一个 time 的提示之前解释.mongorc.js的内容。如果使用 shell 来评估 JavaScript 文件或表达式,可以使用命令 line 上的--eval选项或指定一个.js 文件到 mongomongo将在 JavaScript 处理完毕后读取.mongorc.js文件。您可以使用--norc选项阻止加载.mongorc.js

使用 mongo Shell

要显示您正在使用的数据库,请键入db

db

该操作应 return test,这是默认数据库。要切换数据库,请发出use <db>帮助程序,如下面的示例所示:

use <database>

要列出可用的数据库,请使用帮助程序show dbs。另请参阅db.getSiblingDB()方法以从当前数据库访问其他数据库,而无需切换当前数据库 context(i.e .db)。

您可以切换到 non-existing 数据库。当您首次在数据库中存储数据时,例如通过 creating 集合,MongoDB 会创建数据库。对于 example,以下内容在insertOne()操作期间创建数据库myNewDatabase采集 myCollection

use myNewDatabase
db.myCollection.insertOne( { x: 1 } );

db.myCollection.insertOne()mongo shell 中可用的方法之一。

  • db指的是当前数据库。

  • myCollection是集合的 name。

如果mongo shell 不接受集合的 name,则可以使用备用db.getCollection()语法。例如,如果集合 name 包含空格或连字符,则以数字开头,或与 built-in function 冲突:

db.getCollection("3 test").find()
db.getCollection("3-test").find()
db.getCollection("stats").find()

mongo shell 提示符对每个 line 限制为 4095 个代码点。如果输入的 line 超过 4095 个代码点,shell 将截断它。

有关mongo shell 中基本 MongoDB 操作的更多文档,请参阅:

格式化打印结果

db.collection.find()方法返回结果的光标;但是,在mongo shell 中,如果未使用var关键字将返回的光标分配给变量,则光标最多会自动迭代 20 次,以打印到匹配查询的前 20 个文档。 mongo shell 将提示Type it再次迭代 20 次。

要格式化打印结果,可以将.pretty()添加到操作中,如下所示:

db.myCollection.find().pretty()

此外,您可以在mongo shell 中使用以下显式打印方法:

  • print()无需格式化即可打印

  • print(tojson(<obj>))JSON格式打印,相当于printjson()

  • printjson()JSON格式打印,相当于print(tojson(<obj>))

有关mongo shell 中游标处理的更多信息和示例,请参阅在 mongo Shell 中迭代一个 Cursor。另请参阅光标帮助以获取mongo shell 中的光标帮助列表。

Multi-line mongo Shell 中的操作

如果您使用左括号('('),开括号('{')或开括号('[')结束 line,则后续 lines 以省略号("...")开头,直到您输入相应的右括号(')'),右括号('}')或右括号(']')。在评估 code 之前,mongo shell 等待右括号,右括号或右括号,如下面的 example:

> if ( x > 0 ) {
... count++;
... print (x);
... }

如果输入两个空白行,则可以退出 line 延续模式,如下面的 example:

> if (x > 0
...
...
> ```
 
[{#tab-completion-and-other-keyboard-shortcuts}]()
 

## Tab Completion and Other Keyboard Shortcuts
 
The [mongo](reference-program-mongo.html#bin.mongo) shell supports keyboard shortcuts. For example,
 
 
- Use the up/down arrow keys to scroll through command history. See [.dbshell](reference-program-mongo.html#mongo-dbshell-file) documentation for more information on the  `.dbshell`  file.
 
- Use  `<Tab>`  to autocomplete or to list the completion possibilities, as in the following example which uses  `<Tab>`  to complete the method name starting with the letter  `'c'` :
 
```java
db.myCollection.c<Tab>

因为有很多以字母'c'开头的集合方法,所以<Tab>将列出以'c'开头的各种方法。

有关快捷方式的完整列表,请参阅Shell 键盘快捷键

退出 Shell

要退出 shell,请键入quit()或使用<Ctrl-C>快捷方式。

也可以看看

Updated at: 9 months ago
验证 MongoDB 包的完整性Table of content配置 mongo Shell