操作MongoDB的命令

操作MongoDB的命令

1.docker 进入mongoDB并验证用户权限

docker exec -ti mongodb /bin/bash
mongo -u 'root' -p 'root' --authenticationDatabase 'admin'

在这里插入图片描述

2.输入help命令可查看操作命令

在这里插入图片描述

3.命令演示–主要演示操作document (数据记录行/文档)部分

3.1 新建一个collection(集合/数据库)

在这里插入图片描述

use zhangmr
使用use name命令,如果collection存在,则切换到指定name的collection,如果没有,则新建collection
在这里插入图片描述
show dbs查看命令,发现并没有出现新建的collection
在 MongoDB 中,集合只有在内容插入后才会创建! 就是说,创建集合(数据表)后要再插入一个文档(记录),集合才会真正创建。
在这里插入图片描述
在这里插入图片描述

3.2 插入命令

在这里插入图片描述

3.2.1 db.mycoll.insert(obj)
db.zhangmr.insert({"zhangmr-insert":"insert_0"})

>

3.2.2 db.mycoll.insertOne(obj)
db.zhangmr.insertOne({"zhagnmr-insertOne":"insert_1"})

在这里插入图片描述

3.2.2 db.mycoll.insertMany([objs])
db.zhangmr.insertMany([{"zhagnmr-insertMany":"insert_2"},{"zhangmr-Many":"insert_3"},{"zhangmr-insertMany":"insert_4"}])

在这里插入图片描述

3.3 更新命令

在这里插入图片描述

3.3.1 db.mycoll.update(query, object[update , upsert_bool, multi_bool])

query:update的查询条件,类似sql update查询内where后面的。
update : update的对象和一些更新的操作符(如 , , ,inc…)等,也可以理解为sql update查询内set后面的
upsert_bool: 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
multi_bool: 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。

db.zhangmr.update({"name":"zhangmr测试"},{"name":"zhangmrUpdate"})

在这里插入图片描述

db.zhangmr.update({"name":"zhangmr_zero"},{"name":"zhangmrUpdate_addnew"})

在这里插入图片描述

db.zhangmr.update({"name":"zhangmr_zero"},{"name":"zhangmrUpdate_addnew"},true)

在这里插入图片描述
先批量插入10条数据

for(var i =0;i<10;i++){db.zhangmr.insert({"name":"批量更新","val":i+1})}

在这里插入图片描述

db.zhangmr.update({"name":"批量更新"},{"name":"批量更新--1"}) //默认更新一条

在这里插入图片描述

db.zhangmr.update({"name":"批量更新"},{$set:{"name":"批量更新??","val":'update_0'}},false,true) //更新多条

在这里插入图片描述
multi参数需要跟$参数一起使用,否则会报错
在这里插入图片描述

1.$inc: 引用增加

db.zhangmr.update({"name":"批量更新"},{$inc:{"val":1}},false,true)  # 在原基础上给所有val+1
db.zhangmr.updateMany({"name":"批量更新"},{$inc:{"val":1}})   # 在原基础上给所有val+1

在这里插入图片描述
在这里插入图片描述

  1. $set: 修改数据 (key不存在就添加)
db.zhangmr.update({"name": 'zhangmrUpdate'}, {$set: {"name1": 'zhangmr'}})

在这里插入图片描述

  1. $unset: 强制删除Field
db.zhangmr.update({"name":"zhangmrUpdate"},{$unset:{"name":""}})

在这里插入图片描述

db.zhangmr.update({"name":"批量更新??"},{$unset:{"val":""}}) //更新一条
db.zhangmr.updateMany({"name":"批量更新??"},{$unset:{"val":""}}) //更新多条
或者 
db.zhangmr.updateMany({"name":"批量更新??"},{$unset:{"val":""},fasle,true}) //更新多条

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  1. Array操作
  1. $push: 增加操作 (前提: 增加的字段 key: value 中 value 类型为 Array)
db.zhangmr.insert({"name":[1,2,3]})
db.zhangmr.insert({"array":[{"name":"name_0"},{"age":18}]})
db.zhangmr.insert({"arrayList":[{"name":"name_0","age":18},{"name":"name_1","age":18}]})

在这里插入图片描述

db.zhangmr.update({"key":"123"},{$push:{"arrayList":{"addKet":123}}})

在这里插入图片描述

在数组的某一个元素内加上一个key

db.zhangmr.update({"key":"123"},{$set:{"arrayList.0.key":"addOne"}})

在这里插入图片描述

$pull: 指定删除Array中的某一个元素

db.zhangmr.update({"key":"123"},{$pull:{"arrayList":{"age":18}}})

在这里插入图片描述
在这里插入图片描述

db.zhangmr.update({"key":"123"},{$pop:{arrayList:1}}) //删除最后一个

在这里插入图片描述

db.zhangmr.update({"key":"123"},{$pop:{arrayList:-1}})//删除第一个

在这里插入图片描述

3.4 db.zhangmr.remove(query) 删除记录
db.zhangmr.remove({"_id":{"$gt":ObjectId("617fe0a13402cc07070ebfc6"),"$lt":ObjectId("617fe0a13402cc07070ebfcf")}})

在这里插入图片描述

db.zhangmr.remove({"array.0.name":"name_0"})

在这里插入图片描述

db.zhangmr.remove({"name":{$elemMatch:{$eq:1}}})

在这里插入图片描述

db.zhangmr.remove({"_id":ObjectId("617fe0a13402cc07070ebfcf")})

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值