概述

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

mongo shell 是 MongoDB 发行版的一个组件. 一旦你已经安装并且启动了 MongoDB. 连接 mongo shell 到你运行的 MongoDB 实例. 在 MongoDB 手册的大部分示例都是使用 mongo shell; 然而, 许多驱动程序为 MongoDB 提供了类似的接口.

启动 mongo Shell

重要:
在尝试运行 mongo shell 之前, 确保 MongoDB 正在运行.

启动 mongo shell, 并使用默认端口(port)连接到本地(localhost)正在运行 MongoDB 实例.

  1. 在终端窗口的提示下(或者 Windows 的命令符), 转到你的<mongodb installation dir>:

    cd <mongodb installation dir>
  2. 输入 ./bin/mongo 来启动 mongo:

    ./bin/mongo

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

选项

当你不带任何参数运行 mongo, mongo shell 将会尝试连接在本地运行的端口为27017的 MongoDB 实例. 指定不同的主机或者端口号, 以及其它选项, 请参阅启动 mongo 的示例mongo 参考, 其中提供了可用选项的详细信息.

.mongorc.js 文件

当启动时, mongo 会检查用户的目录是否存在一个名为 .mongorc.js 的 JavaScript 文件. 如果找到, mongo 会在第一次显式提示之前解析 .mongorc.js 的内容. 如果你想使用 shell 来解析一个 JavaScript 文件或者表达式, 不如在命令行使用 --eval 选项或者为 mongo 指定一个 .js 文件, mongo 将会在 JavaScript 完成处理之后读取 .mongorc.js 文件. 你可以使用 --norc 选项来防止加载 .mongorc.js.

使用 mongo Shell

要显示你正在使用的数据库, 输入 db:

db

操作应该返回 test, 这是默认的数据库. 要切换数据库, 执行 use <db>, 如以下示例:

use <database>

列出可用的数据库, 使用 show dbs. 请参阅 db.getSiblingDB() 方法从当前的数据库访问一个不同的数据, 而不切换你的当前数据库的上下文(即 db).

你也可以切换到不存在的数据库. 当你数据库第一次存储数据时, 例如通过创建集合, MongoDB 会创建数据库. 例如, 下面在 insert() 操作期间, 会创建 myNewDatabase 数据库和 myCollection 集合.

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

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

  • db 引用当前的数据库.

  • myCollection 是集合的名字.

如果 mongo shell 不接受集合的名称. 例如, 如果名称包含空格, 连字符或者数字开头, 你可以使用另外一个语法去创建集合, 比如这样:

db["3test"].find()
db.getCollection("3test").find()

有关 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 中迭代游标. 同样也可以在 mongo shell 中使用游标帮助获取游标帮助列表.

在 mongo shell 中多行操作

如果你用一个左括号括起来一行 ('('), 一个左大括号 ('{'), 或中括号 ('['), 然后后面的行都会以省略号开头 ("..."), 直到输入响应的右括号 (')'), 右大括号 ('}') 或者右中括号 (']'), 在解析代码之前, mongo shell 会一直等待右括号, 右大括号或者右中括号, 如下所示:

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

如果你输入两行空行, 你可以退出行连续模式, 如下所示:

> if (x > 0
...
...
>

tab 提示和其它键盘快捷键

mongo shell 支持键盘快捷键. 例如:

  • 使用 ↑/↓ 箭头键滚动命令历史记录. 请在 .dbshell 文件参阅 .dbshell 文档获取更多信息.

  • 使用 <Tab> 自动完成或者列出可自动完成的命令列表, 如下所示, 使用 <Tab> 来完成以字母 'c' 开头的方法名称.

    db.myCollection.c<Tab>

    因为有很多 collection(集合) 方法以字母 "c" 开头, <Tab> 将会列出以 "c" 开头的各种方法.

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

退出 Shell

要退出 shell, 输入 quit() 或者使用Ctrl + C快捷方式.

参见:

下一章: https://segmentfault.com/a/11...
原文地址: https://docs.mongodb.com/manu...


魔王卷子
940 声望33 粉丝

PHP程序员,专注于后端!