(翻译) MongoDB(19) mongo Shell

概述

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

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

启动 mongo Shell

重要:
在尝试运行 mongo shell 以前, 确保 MongoDB 正在运行.数据库

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

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

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

    ./bin/mongo

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

选项

当你不带任何参数运行 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.code

使用 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...

相关文章
相关标签/搜索