MongoDB shell 基本操作

MongoDB shell 基本操作

MongoDB bin目录结构
  • mongo:MongoDB 客户端程序
  • mongod:MongoDB 服务器程序

MongoDB Shell 客户端

[root@node-01 mongodb-4.2.7]# bin/mongo --host node-01  --port 27017
> db # 显示连接的当前数据库
test

– host:MongoDB 服务器主机名或 IP 地址(默认本机IP地址)

– port:MongoDB 服务器监听的端口号(默认27017)

  • 启动 Shell 客户端时会连到 MongoDB 服务器的 test 数据库,并将数据库连接赋值给全局变量 db。这个变量是通过 shell 访问 MongoDB 的主要入口点
  • shell 客户端本质上是一个 JavaScript 解释器,可以解释执行 JavaScript 代码

数据库 CURD 操作

查看当前数据库
> db 
test
查看数据库状态信息
> db.stats()
查看所有数据库
> show dbs
# 或者
> show database

仅显示非空数据库

切换数据库
> use info;
switched to db info

> db
info
创建数据库
> use test # 如果数据库不存在,则创建数据库
switched to db test
> db # 显示当前数据库
test

MongoDB 中不需要显式的创建数据库,直接使用 use 切换数据库,如果数据库不存在,则创建数据库,否则切换到指定数据库

删除数据库
> db.dropDatabase()
{ "ok" : 1 }

集合 CURD 操作

创建集合
> db.createCollection("test")
{ "ok" : 1 }

注:在 MongoDB 中不需要显式的创建集合,在集合中插入数据,就会生成集合。

显示集合
> show collections
# 或者
> show tables
删除集合
# 删除 test 集合
> db.test.drop()
true

插入文档

insertOne 函数:集合插入单个文档

语法:

db.collection.insertOne(
	<document>,
	{
		writeConcern: <document>
	}
)
  • collection:需要替换成真正的集合名称
  • document:需要插入的数据文档
  • writeConcern:安全写级别(目前不考虑,有默认级别)
insertMany 函数:集合插入多个文档(数组)

语法:

db.collection.insertMany(
	[ <document 1> , <document 2>, ... ], 
    {
		writeConcern: <document>,
		ordered: <boolean> 	
    }
 )
  • collection:需要替换成真正的集合名称
  • document:需要插入的数据文档
  • writeConcern:安全写级别(目前不考虑。有默认级别)
  • ordered:指定 mongodb 实例应该执行有序插入还是无序插入(默认值为true)
insert 函数:集合插入1个或多个文档(数组)

语法:

db.collection.insert(
	<document or array of documents>, 
	{
		writeConcern: <document>,
		ordered: <boolean> 
	}
 )

save 函数:更新集合文档

语法:

db.collection.save(
	<document>, 
	{
		writeConcern: <document>
	}
 )

使用 save 的时候,如果插入文档的_id在集合中不存在, 就是插入数据,否则更新数据

删除文档

remove 函数:删除集合文档

语法:

db.collection.remove(
    <query>,
    <justOne>
)
  • query:筛选符合条件的文档删除
  • justOne:boolean 类型,默认为 false,即删除所有匹配删除标准的文档。若要仅删除一个文档,将其设置为 true

插入数据

​ 自动分配id db.person.insertOne({name:“lisi”,age:22,sex:“male”})

​ 手动指定id db.person.insertOne({_id:1,name:“wangwu”,age:22,hobby:[“sing”,“pingpong”]})

插入数据时ordered默认为true,插入程序出错,则中断执行,改为false后可以跳过错误继续执行

​ db.person.insertMany([{_id:1,name:“jackZhou”,age:18},{_id:2,name:“jeffLi”,sex:“33”}],{ordered:false})

查看数据

y:[“sing”,“pingpong”]})

插入数据时ordered默认为true,插入程序出错,则中断执行,改为false后可以跳过错误继续执行

​ db.person.insertMany([{_id:1,name:“jackZhou”,age:18},{_id:2,name:“jeffLi”,sex:“33”}],{ordered:false})

查看数据

​ db.person.find().pretty()

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值