概述
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 实例.
-
在终端窗口的提示下(或者 Windows 的命令符), 转到你的<mongodb installation dir>:
cd <mongodb installation dir>
-
输入
./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...
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。