mongo shell是MongoDB的交互式JavaScript接口,你可以使用mongo shell查询和更新数据以及执行管理操作。
启动mongo shell并连接MongoDB
在启动mongo shell之前,必须确保你的MongoDB已经运行。接着cd
到mongodb安装目录下的bin
目录中。例如:
cd <mongodb installtion dir>/bin
如果你已经将上面的目录添加到你的
PATH
环境变量中,那么就可以不用cd到该目录下。任何一个位置都可以启动mongo shell。
默认端口上的本地MongoDB实例
你可以在没有任何命令行选项的情况下运行mongo shell,以使用默认端口27017连接到localhost上,运行Mongodb实例。
mongo
非默认端口上的本地MongoDB实例
使用--port
命令行选项来显示指定端口,例如,使用非默认端口28015连接到localhost上,运行MongoDB实例。
mongo --port 28015
远程主机上的MongoDB实例
1.使用连接字符串
连接字符串形式如:mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]
。其中mongod
是必须的前缀,用来表示标准的连接形式。
mongo mongodb://mongodb0.example.com:28015
2.使用命令行
mongo --host mongodb0.example.com:28015
也可以将上面的端口号通过--port
指定,例如:
mongo --host mongodb0.example.com --port 28015
MongoDB实例的鉴权
你可以在连接字符串中指定用户名,身份验证数据库和可选的密码。但是如果你不在连接字符串中明确密码,那么shell会提示你输入密码。例如:
mongo --host mongodb://alice@mongodb0.examples.com:28015/?authSource=admin
同样,你也可以使用--username <user>
和--password
,--authenticationDatabase <db>
选项来分别定义用户名,密码,连接的数据库等。
mongo --username alice --password --authenticationDatabase admin --host mongodb0.examples.com --port 28015
使用mongo shell
使用命令show dbs
查看所有可用数据库。显示你正在使用的数据库,输入db
。例如db
。结果会返回test
,这是一个默认数据库。要切换数据库,使用use <db>
,例如:use <database>
。你也可以切换到一个不存在的数据库,当你第一次在数据库中存储数据时,例如创建一个集合,MongoDB将会创建这个数据库。
例如命令db.myCollection.insertOne()
中db
表示当前的数据库,myCollection
表示集合名字。如果你的集合名字含有空格、破折号、以数字开始等与内建函数冲突,那么你可以使用db.getCollection("my Collection").insertOne()
。
格式化打印结果
例如db.collection.find()
返回的结果,如果多于20
条记录,那么它每次只返回20个。键入enter
,可以再迭代。格式化打印结果,你可以添加.pretty()
。例如:
db.myCollection.find().pretty()
mongo shell多行操作
如果你用一个左括号(
,一个大括号{
或一个开括号[
来结束一行,那么后续的行会以省略号...
开头,知道你输入相应的右括号,右开括号,右开括号。如下例所示:
> if (x>0) {
... count++;
... print(x);
...}
如果你输入两个空行,则可以退出继续模式。例如:
> if (x > 0
...
...
>
退出mongo shell
使用quit()
或者ctrl+c
。
参考文章: