(翻译) MongoDB(19) mongo Shell

概述

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…

    原文作者:魔王卷子
    原文地址: https://segmentfault.com/a/1190000007297874
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞