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 不等于
$in in
$nin not 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()统计总数量