文章目录

  • 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}])