初学mongoDB(一)

mongoDB的基本操作

查看数据库

语法:show databases

效果:
在这里插入图片描述

选择数据库

语法:use 数据库名称

效果:

在这里插入图片描述

删除数据库

1.通过use选中数据库

2.通过db.dropDatabase()删除数据库

创建集合

语法:db.createCollection("集合名")

效果:

在这里插入图片描述

查看集合

语法:show collections

效果:
在这里插入图片描述

删除 集合

语法:db.集合名.drop()

效果:

在这里插入图片描述

mongoDB文档的增删改查

增Create

语法:db.集合名.insert(JSON数据)

说明:集合存在则直接插入数据,集合不存在则隐式创建

练习:在test2数据库的c1集合中插入数据

use test2 
db.c1.insert({name:"yyqx",age:18})

/*注:
1.数据库和集合不存在都隐式创建
2.对象的键统一不加引号方便看,但是查看集合时系统会自动加
3.mongodb会给每条数据增加一个全球唯一的_id值
*/

在这里插入图片描述

注:

1.可以自己定义id值,只需在传入的对象中加一个_id的键

db.c1.insert({name:"ys",age:18,_id:1})

在这里插入图片描述

2.可以一次插入多条信息,使用一个数组

db.c1.insert([
	{name:"z3",age:3},
	{name:"z4",age:3},
	{name:"w5",age:3}
])

在这里插入图片描述

3.可以使用for循环插入多条信息

for(var i = 1;i <= 10;i++){
	db.c2.insert({name:"z"+ i,age:i})
}

在这里插入图片描述

查Read

基础语法:db.集合名.find(条件[,查询的列])

条件:

  • 查询所有数据 -{}或者不写
  • 查询age=6的数据 -{age:6}
  • 既要age=6又要性别=男 -{age:6 ,sex:‘男’}

查询的列(可选参数):

  • 不写–这查询全部列
  • {age:1}只显示age列
  • {age:0}除了age列

注:不管你怎么写系统自定义的_id都会在

升级语法

db.集合名.find({:})注:值不直接写

				{运算符:}

db.集合名.find({
	:{运算符:}
})

注:格式化:db.集合名.find().pretty()

运算符作用
$gt大于
$gte大于等于
$lt小于
$lte小于等于
$ne不等于
$inin
$ninnot in

练习1:查询所有数据

在这里插入图片描述

练习2:查询年龄大于5岁的数据?

在这里插入图片描述

练习3:查询年龄是5岁、8岁、10岁的数据?

在这里插入图片描述

练习4:只看年龄列,或者年龄以外的列(_id别管它)?

在这里插入图片描述

改Update

基础语法: db.集合名.update(条件,新数据〔,是否新增,是否修改多条])

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

升级语法

db.集合名.update(条件,新数据)
					{修改器:{:}}
修改器作用
$inc递增
$rename重命名列
$set修改列值
$unset删除列

练习1:将{uname:“zs1"”}改为{uname:“zs2"”

在这里插入图片描述

发现:默认是修改而不是替换

解决:使用升级语法 修改器

在这里插入图片描述

练习2:给{uname:“zs10”}的年龄加2岁或者减2岁

在这里插入图片描述

练习3:修改器综合练习
插入数据: db.c4.insert( {uname:“神龙教主”,age:888,who:“男”,other:“非国人”});

完成需求:

uname改成yyds  (修改器:$set)
age增加111     (修改器:$inc)
who改字段sex   (修改器: $rename)
other 删除     (修改器: $unset)

在这里插入图片描述

练习4:验证语法最后两个参数(了解)
【验证】是否新增true是false否:修改name等于zs30的年龄30岁

在这里插入图片描述

【验证】是否修改多条true是,false否默认

在这里插入图片描述

在这里插入图片描述

删Delete

语法: db.集合名.remove(条件[是否删除一条])

注意:是否删除—条true是,false否默认

在这里插入图片描述

排序与分页

排序

  • 语法:db.集台名.find().sort(JSON数据)
  • 说明:键-就是要排序的列/字段、值:1升序-1降序
  • 练习:年龄升序&降序
    在这里插入图片描述

分页(Limit与Skip方法)

  • 语法: db.集合名.find().sort().skip(数字).limit(数字)

  • 说明: skip跳过指定数量(可选),limit限制查询的数量

  • 练习:1-降序查询查询2条,2-降序跳过2条并查询2条

在这里插入图片描述

实战分页

语法: db.集合名.find().skip().limit(2)
需求:数据库1 -10数据,每页显示两条(5页)

skip计算公式:(当前页-1)*每页显示条数

1页   1 2     0
2页   3 4     2
3页   5 6     4
4页   7 8     6
5页   9 10    8

小总结

  • db.集合名.find()
  • sort({列: 1/-1})排序
  • skip(数字)跳过指定数量
  • limit(数字)限制查询条数
  • count()统计总数量
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值