文章目录
- 1. 数据库操作
- 1.1 数据库切换
- 1.2 删除当前指向的数据库
- 2. 集合操作
- 2.1 创建集合
- 2.2 查看当前数据库的集合
- 2.3 删除集合
- 3. 数据类型
- 4. 数据操作
- 4.1 插入数据
- 4.2 查询数据
- 4.3 更新数据
- 4.4 删除数据
- 5. 数据查询
- 5.1 基本查询
- 5.2 比较运算符
- 5.3 逻辑运算符
- 5.4 范围运算符
- 5.5 正则表达式
- 5.6 获取指定数量数据
- 5.7 获取指定位置的数据
- 5.8 排序
- 5.9 统计个数
- 6. 高级操作(聚合aggregate)
- 6.1 group
- 6.2 match
- 6.3 sort
- 6.4 limit
- 6.5 skip
1. 数据库操作
1.1 数据库切换
- 查看当前数据库名称
db
- 查看所有数据库名称
show dbs
- 切换数据库
use 数据库名称
1.2 删除当前指向的数据库
db.dropDatabase()
2. 集合操作
2.1 创建集合
db.createCollection('stu')
2.2 查看当前数据库的集合
show collections
2.3 删除集合
db.集合名称.drop()
3. 数据类型
Object ID:文档ID
String:字符串,最常用,必须是有效的UTF-8
Boolean:存储一个布尔值,true或false
Integer:整数可以是32位或64位,这取决于服务器
Double:存储浮点值
Arrays:数组或列表,多个值存储到一个键
Object:用于嵌入式的文档,即一个值为一个文档
Null:存储Null值
Timestamp:时间戳
Date:存储当前日期或时间的UNIX时间格式
4. 数据操作
4.1 插入数据
json 格式数据
db.stu.insert({name:'gkl',gender:1})
4.2 查询数据
db.stu.find()
4.3 更新数据
db.stu.update({name:'gkl'},{$set:{name:'gklgkl'}}) 更新一个
db.stu.update({name:'gkl'},{$set:{name:'gklgkl'}}, {multi:true}) 更新所有
4.4 删除数据
db.stu.remove({name:'gklgkl'})
db.stu.remove({name:'gklgkl'}, 1) 删除一个
5. 数据查询
5.1 基本查询
- find() 查询
db.stu.find()
- findOne() 返回查询的第一条
db.stu.findOne()
5.2 比较运算符
等于,默认是等于判断,没有运算符
小于$lt
小于或等于$lte
大于$gt
大于或等于$gte
不等于$ne
db.stu.find({age:{$gte:18}})
5.3 逻辑运算符
- 逻辑与:默认是逻辑与的关系
- 查询年龄大于或等于18,并且性别为1的学生
db.stu.find({age:{$gte:18},gender:1})
- 逻辑或:使用$or
- 例4:查询年龄大于18,或性别为0的学生
db.stu.find({$or:[{age:{$gt:18}},{gender:1}]})
5.4 范围运算符
- 查询年龄为18、28的学生
db.stu.find({age:{$in:[18,28]}})
5.5 正则表达式
- 查询姓黄的学生
db.stu.find({name:/^黄/})
5.6 获取指定数量数据
- 查询2条学生信息
db.stu.find().limit(2)
5.7 获取指定位置的数据
- 查询从第3条开始的学生信息
db.stu.find().skip(2)
- 查询第5至8条数据
db.stu.find().limit(4).skip(5)
5.8 排序
- 参数1为升序排列
- 参数-1为降序排列
- 根据性别降序,再根据年龄升序
db.stu.find().sort({gender:-1,age:1})
5.9 统计个数
- 统计男生人数
db.stu.find({gender:1}).count()
- 统计年龄大于20的男生人数
db.stu.count({age:{$gt:20},gender:1})
6. 高级操作(聚合aggregate)
6.1 group
- 统计男生、女生的总人数
db.stu.aggregate([
{$group:
{
_id:'$gender',
counter:{$sum:1}
}
}
])
- 求学生总人数、平均年龄
db.stu.aggregate([
{$group:
{
_id:null,
counter:{$sum:1},
avgAge:{$avg:'$age'}
}
}
])
6.2 match
- 查询年龄大于20的学生
db.stu.aggregate([
{$match:{age:{$gt:20}}}
])
- 查询年龄大于20的男生、女生人数
db.stu.aggregate([
{$match:{age:{$gt:20}}},
{$group:{_id:'$gender',counter:{$sum:1}}}
])
6.3 sort
- 查询学生信息,按年龄升序
db.stu.aggregate([{$sort:{age:1}}])
- 查询男生、女生人数,按人数降序
db.stu.aggregate([
{$group:{_id:'$gender',counter:{$sum:1}}},
{$sort:{counter:-1}}
])
6.4 limit
- 查询2条学生信息
db.stu.aggregate([{$limit:2}])
6.5 skip
- 查询从第3条开始的学生信息
db.stu.aggregate([{$skip:2}])