mongodb

mongodb介绍

使用docker 安装 mongodb

mongodb命令

其他命令

1、进入mongodb命令操作界面

命令:mongo  

在这里插入图片描述
进入mongo默认所在的数据库是 test 数据库
在这里插入图片描述

数据库操作命令

1、查看mongodb有几个数据库

命令:show dbs 或者 show databases
在这里插入图片描述 在这里插入图片描述
说明:
数据库:admin、config、local 三个数据库是mongodb默认的保留数据库。

admin∶从权限的角度来看,这是"root"数据库。要是将一个用户添加到这个数据库,这个用户自动继承所有数据库的权限。一些特定的服务器端命令也只能从这个数据库运行,比如列出所有的数据库或者关闭服务器。

local:这个数据永远不会被复制,可以用来存储限于本地单台服务器的任意集合。

config :当Mongo用于分片设置时,config数据库在内部使用,用于保存分片的相关信息。

2、在mongo命令操作终端如何清屏

命令:cls
在这里插入图片描述

3、如何创建一个数据库。并且去换到这个数据

命令:use 数据库名
作用:用户切换数据库和新建数据库。数据库存在则是切换数据库。不存在就是创建该数据库并且切换到该数据库。
在这里插入图片描述

4、查看当前所在位置的数据库

命令:db
结果说明:当前在数据库 leodata 下
在这里插入图片描述

5、删除数据库

命令:db.dropDatabase()
在这里插入图片描述

集合操作命令(对应msyql的的表)

1、创建集合

语法:db.createCollection(“集合名”)
命令:db.createCollection(“users”)
在这里插入图片描述

2、查看集合

命令:show collections 或者 show tables
在这里插入图片描述

3、删除结合

语法:db.集合名.drop()
命令:db.users.drop()
在这里插入图片描述

文档操作命令(对应mysql表中的一条条数据)

1、添加文档

1.1、添加一条文档

语法:

db.集合名.insert({"k1":"v1","k2":"v2"})

命令:

db.leotable.insert({"name":"leo","age":18})

在这里插入图片描述

1.2、添加多条文档,使用逗号分开

在这里插入图片描述

1.3、使用脚本插入数据添加多条数据

在这里插入图片描述

2、查询集合中所有 文档

语法:db.集合名.find()
命令:db.leotable.find()
在这里插入图片描述

3、删除文档

语法:db.集合名.remove({删除条件})

命令:
db.leotables.remove({}) – 删除集合中所有文档
db.leotables.remove({“name”:“王五0”}) – 删除集合leotables中 字段 name值为"王五0"的文档。
在这里插入图片描述

4、更新文档

语法:db.集合名.update({更新的条件},{更新的内容},{参数})
案例:db.leotable.update({“_id”:1},{“age”:25}) --将文档 _id为1的“age”值 更新为25 。
命令执行原理:这个更新是将符合条件的全部更新成后面的文档,相当于先删除再添加
出现的问题:会覆盖原来已有的数据。如图 参数为:name 的数据没有了。
这个方式修改。只会修改一条符合条件的数据。
在这里插入图片描述
如何保留原来数据进行更新
语法:db.集合名.update({更新的条件},{$set:{更新的内容}},{参数})

说明:将要更新的内容用【$set:{}】包含起来
在这里插入图片描述
如果在修改时,修改所有符和修改条件的所有数据
参数说明:

  • upsert:可选,这个参数的意思是,如果不存在update的记录,是否插入该条数据;true为插入,默认是false,不插入。
  • multi:可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。

案例:全部更新
在这里插入图片描述

5、查询文档

语法:

db.集合名.find({query,projection})

参数说明:

  • query:可选,查询操作时,可以填写查询条件
  • projection:可选,该参数可以设置指定对查询结果返回指定的键值,相当于sql查询中的* 号和查询指定的字段一个意思。不写默认查询所有键值。

说明:find() 方法是以这种非结构化的方式显示查询结果的。如果想格式化查询结果可以用语法格式:

db.集合名.find({query,projection}).pretty()

案例: 太长的数据,会格式化。
在这里插入图片描述
注意:pretty()方法以格式化的方式来显示所有文档。

在这里插入图片描述

and :并且怎么查

语法:

db.集合名词.find({key1:value1,key2:value2}).pretty()

说明:类似于where 语句:where key1=value1 and key2=value2

案例: 查询 _id=1 并且 age=99 的 数据
在这里插入图片描述

注意:如果同一个key的查询条件出现多次,只会已最后一个为准。
案例: 查询 age=24 并且 age=28的 数据
在这里插入图片描述

or :或者怎么查询

语法:

db.集合名.find({$or:[{key1:value1},{key2:value2}]}).pretty()

案例 : 查询 age=24 或者 age=28的 数据
在这里插入图片描述

and 和 or 联合查询

案例: age>=18 and (age==18 or name=‘王五2’)
命令:

db.leotable.find({age:{$gte:18},$or:[{age:18},{name:'王五2'}]});

结果
在这里插入图片描述

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值