说明:英文原文地址:https://docs.mongodb.com/v3.2/mongo/。
本文章属个人翻译,作个人学习之用,如有雷同,纯属巧合。如有错误之处,欢迎指正。
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并连接到运行在localhost
上默认端口的MongoDB实例:
-
在终端中,切换到你的mongodb安装目录
cd mongodb安装目录
输入 ./bin/mongo 启动
mongo
./bin/mongo
如果你已经把mongodb安装目录/bin添加到
PATH
环境变量,只需输入mongo
即可,而不用./bin/mongo
。
选项
当不用任何参数运行mongo
时,mongo
shell会试图连接到运行在本地,监听27017端口的MongoDB实例。要指定不同的主机或端口号,或者其它选项,请参考启动mongo示例和mongo参考,它们提供了可用选项的详细信息。
.mongorc.js 文件
mongo
启动时,会在用户的HOME目录中检查一个名为.mongorc.js
的javascript文件,如果找到了,在第一次显示提示之前,mongo
会解释.mongorc.js
文件的内容。如果你用mongo
shell来执行javascript文件或者表达式,在命令行中使用--eval
选项,或者给mongo
指定一个.js文件,mongo
shell将会处理完javascript后读取.mongorc.js
文件并执行。可以用--norc
选项来禁止.mongorc.js
执行。
使用mongo Shell工作
要显示正在使用的数据库,用:
db
该操作应该返回test
,它是默认的数据库。要切换数据库,用use <db>
,如下:
use <database>
要列出可用的数据库,用show dbs
。db.getSiblingDB()
可用列出当前数据库之外的其它数据库,同时不会铁环你的当前数据库上下文。
你可以切换到一个不存在的数据库。当第一次在该数据库中存储数据时,如创建一个集合,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()
格式化打印结果
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>
由于有很多以字母
'c'
开头的集合方法,Tab
操作将会列出以'c'
开头的一系列方法。
至于完整的快捷方法列表,请移步Shell键盘快捷键。
退出Shell
要退出shell,输入quit()
或用<Ctrl+C>
快捷键。