mongdb学习

MongoDB的安装与基本操作:

安装成功后启动mongdb服务:
找到mongdb安装路径:
两种打开方式:

  1. 直接在F:\devSoftware\env\MongoDB\bin中双击打开mongo.exe
  2. 直接在F:\devSoftware\env\MongoDB\bin的地址栏输入cmd,然后输入命令mongo就能实现通过命令行开启mongdb。

其他语法:下载mongdb的安装包解压后,通过管理员权限打开cmd,进入安装好mongdb
的路径,

  1. 创建服务:bin/mongod.exe --install --dbpath 磁盘路径 --logpath 日志路径
  2. 删除服务:bin/mongd.exe --remove
  3. 启动服务:net start mongdb (退出:exit 之后启动直接输入mongo)
  4. 关闭服务:net stop mongodb

mongdb的基本操作:

  1. 查看数据库:
    语法:show databases(打开mongdb之后输入命令即可)
    查看数据库的效果

  2. 选择数据库:
    语法:use 数据库名称
    在这里插入图片描述

  3. 查看集合:
    语法:show collections
    效果:在这里插入图片描述

  4. 创建集合:
    语法:db.createCollection(‘集合名’)
    效果:在这里插入图片描述

  5. 删除集合:
    语法:db.集合名.drop()
    效果:在这里插入图片描述
    如何删除数据库:1.通过use语法选中数据库
    2.通过db.dropDatabase()删除数据库

小总结

数据库(查看,创建,选择,删除)

查看:show databases
创建:单独的语法,但是忽略隐式创建
选择:use 数据库名
删除:1.通过use选中数据库,2.通过db.dropDatabase()删除数据库

集合(查看、创建、删除)

查看:show collections
创建:db.createCollection(‘集合名’) 多学一招:忽略,后期插入数据 隐式创建集合
删除:db.集合名:drop()

MongoDB文档增删改查(CRUD)

数据库主要用来存放项目数据,前面已经学了数据库和集合的创建,接下来需要通过MongoDB语法实现集合中数据的增删改查

  1. 插入文档

增:
语法:db.集合名.insert(JSON数据)
说明:集合存在-则直接插入数据,集合不存在-隐式创建
例如:在test2数据库中的c1集合中插入数据(姓名为webopenfather年龄18岁)
use test2 db.c1.insert({uname:"webopenfather",age:18})
注意:1.数据库和集合不存在都隐式创建
2.对象的键统一不加引号方便看,但是查看集合数据时系统会自动加
在这里插入图片描述
注意3:MongoDB会给每一条数据增加一个全球唯一的_id键
思考:1.是否可以自定义id值
回答:可以,只需要给插入的json数据增加_id键即可(但实战强烈不推荐)在这里插入图片描述
思考2:如何一次性插入多条数据?
回答:传递数组,数组中写一个个json数据即可

//一次性插入三条数据到c1集合
db.c1.insert([
	{uname:"3"},
	{uname:"3"},
	{uname:"3"}
])

在这里插入图片描述

思考3:如何快速插入10条数据
回答:mongdb底层是使用js引擎实现的,所以支持部分js语法,因此可以使用for循环,代码如下:

for (var i =1;i<=10;i++){
	print(i)
}
//需求:在test2数据库c2集合中插入10条数据,分别为a1,a1 ... a10
use test2
for (var i =1;i<=10;i++){
	db.c2.insert({uname:"a"+i,age:i})
}

在这里插入图片描述

  1. 查询文档

基础语法:db.集合名.find(条件 [,查询的列])
条件:查询所有数据 {}或者不写
查询age=6的数据 {age:6}
既要查询age=6又要性别=男 {age:6;sex:‘男’}
查询的列:
(可选参数)
不写 -查询全部列(字段)
{age:1} 只显示age列(字段都显示)
{age:0} 除了age列(字段都显示)
注意:不管怎么写系统自定义的_id都会显示

例子1:查询所有数据
在这里插入图片描述
列子2:查询年龄大于五岁的数据
db.c1.find({age:{$gt:5}})
结果:在这里插入图片描述

第二个例子中需要用到一些新语法:db.集合名.find({键:值}) 注意:值不直接写 {运算符:值}
db.集合名.find({
键:{运算符:值}
})
在这里插入图片描述
例子3:查询年龄是五岁,八岁,十岁的数据
结果:在这里插入图片描述
例子3:只看年龄列或者年龄以外的列(不管_id)
结果:在这里插入图片描述

  1. 修改文档
    基本语法:db.集合名.update(条件,新数据[,是否新增,是否修改多条])

是否新增:是指条件匹配不到数据则插入,true是插入,false否不插入(默认)
是否修改多条:只讲匹配成功的数据都修改(true是,false否(默认))

在这里插入图片描述

准备工作:

use test2
for(var i =1;i<10;i++){
	db.c3.insert({"uname":"zs"+i,"age":i});
}

例子1:将{uname:“zs1”}改为{uname:“zs2”}
发现:默认是替换不是修改
解决:使用升级语法 修改器
需求:使用修改器将zs4修改成zs44
语法:db.c3.update({uname:“zs4”},{$set:{uname:“zs44”})
在这里插入图片描述
例子2:给{uname:“zs10”}的年龄增加2岁
结果:在这里插入图片描述
递减就换成-2即可

例子4
在这里插入图片描述
在这里插入图片描述
验证第三个参数(true和的false)
在这里插入图片描述
验证是否修改多条,true是,false否(默认)
在这里插入图片描述

  1. MongoDB删除文档
    语法:db.集合名.remove(条件[,是否删除一条])
    注意:是否删除一条,true是,false否,默认
    在这里插入图片描述

MongoDB文档增删改查的小结

1.增Create

db.集合名.insert(JSON数据)

2.删Delete

db.集合名.remove(条件[,是否删除一条true是,false否默认])
也就是默认删除多条

3.改Update

db.集合名.update(条件,新数据[,是否新增,是否修改多条])
升级语法db.集合名.update(条件,{修改器:{键:值}})
4.查Read
db.集合名.find(条件,[,查询的列]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值