MongoDB自带一个交互式的JavaScript Shell。我们可以使用mongo shell查询和更新数据,并执行管理操作。
mongo shell是mongodb发行版的一个组件。安装并启动mongodb后,将mongo shell连接到正在运行的mongodb实例。
文章目录
- 启动mongo shell并连接到mongodb
- 准备
- 默认端口上的本地MongoDB实例
- 非默认端口上的本地MongoDB实例
- 远程主机上的MongoDB实例
- 使用shell
- 要显示正在使用的数据库
- 当前用户可用的数据库
- 切换数据库
- 切换到不存在的数据库
- 设置打印结果的格式
- mongodb shell多行操作
- 退出shell
启动mongo shell并连接到mongodb
准备
shell会在启动时自动连接mongoDB服务器,所以请确保在启动mongoDB shell之前,确保mongod已经启动
打开终端窗口(或Windows命令提示),转到< mongodb 安装目录>/bin目录:
cd <mongodb installation dir>/bin
备注:可以将/bin导入环境变量,这样你直接输入mongodb就可以进入shell命令行
默认端口上的本地MongoDB实例
直接输入mongo,这样会默认链接到本地主机上端口27017上运行的mongoDB实例
$ mongo
非默认端口上的本地MongoDB实例
要显式指定端口,请包括–port命令行选项。
$ mongo --port 28015
远程主机上的MongoDB实例
三种方法。
$ mongo mongodb://127.0.0.1:27017
$ mongo --host 127.0.0.1:27017
$ mongo --host 127.0.0.1 --port 27017
把上面的127.0.0.1换成你的远程ip地址,27017换成端口就可以了
中间这一段我现在用不到
使用shell
要显示正在使用的数据库
> db
test --test 是默认数据库
备注:shell时一个独立的mongoDB客户端,开启的时候,shell会连到mongoDB服务器的test数据库,并将这个数据库连接赋值到全局变量db。这个变量时通过shell访问MongoDB的主要入口点。
备注:因为这是一个JaveScript Shell,所以键入一个变量会将变量的值转换为字符串并打印出来。
备注:可以通过db变量来访问其中的集合
当前用户可用的数据库
> show dbs;
admin 0.000GB
config 0.000GB
local 0.000GB
备注:
切换数据库
> use local
switched to db local
切换到不存在的数据库
> use myNewDatabase
switched to db myNewDatabase
> db.myCollection.insertOne({x:1});
{
"acknowledged" : true,
"insertedId" : ObjectId("5c8e03a17c4706ac88a6153f")
}
> show dbs
admin 0.000GB
config 0.000GB
local 0.000GB
myNewDatabase 0.000GB
db.myCollection.insertOne时:会创建myNewDatabase数据库并插入一个数据
db.mycollection.insertone()是mongo shell中可用的方法之一。
如果mongo shell不接受集合的名称,则可以使用可选的db.getCollection()语法。例如,如果集合名称包含空格或连字符、以数字开头或与内置函数冲突:
db.getCollection("3 test").find()
db.getCollection("3-test").find()
db.getCollection("stats").find()
mongo shell提示的每行代码点限制为4095个。如果输入的行的代码点超过4095个,shell将截断它。
设置打印结果的格式
db.collection.find()方法将光标返回到结果中;.pretty()方法可以格式化打印结构
> db.myCollection.find().pretty()
{ "_id" : ObjectId("5c8e03a17c4706ac88a6153f"), "x" : 1 }
mongodb shell多行操作
mongoDB shell会检测输入的JaveScript语句是否写完,如果没有写完还可以在写一行接着写
> x = 10
10
> if(x>0){
... print(x)
... }
10
- shell支持很多快捷键,比如Tab
退出shell
要退出shell,请键入quit()或使用快捷方式。