Mongodb 基本命令
具体详细内容,请查阅 Mongodb官方文档
一、库相关
1.1 查看数据库列表
show dbs
1.2 进入数据库
use 库名
1.3 查看当前库
db.getName() 或 db
1.4 查看库中的集合
show collections
1.5 查看库状态
db.stats()
1.6 查看库版本
db.version()
1.7 查看当前db的连接机器地址
db.getMongo()
1.8 创建库
use 库名 #库名不存在,自动创建。但是,如果不插入数据,切换库后会被自动删除
1.9 删除当前库
db.dropDatabase()
1.10 从指定主机上克隆数据库
db.cloneDatabase("127.0.0.1")
1.11 修复当前数据库
db.repairDatabase()
1.12 更多命令
db.help()
二、集合相关
2.1 查看当前db的所有集合
db.getCollectionNames() 或 show collections
2.2 当前db所有聚集索引的状态
db.printCollectionStats()
2.3 查看指定集合
db.getCollection(集合名称).find({})
2.4 查看指定集合的数据条数
db.集合名称.count()
2.5 查看指定集合空间大小
db.集合名称.dataSize()
2.6 查看指定集合所在库
db.集合名称.getDB()
2.7 修改指定集合名称
db.集合名称.renameCollection(集合新名称)
2.8 添加数据到指定集合
db.集合名称.save(json串)
db.集合名称.insert(json串)
db.集合名称.insertOne(json串)
db.集合名称.insertMany(json串数组)
2.9 删除指定集合
db.集合名称.drop()
2.10 创建索引
db.集合名称.ensureIndex({字段名:1})
2.11 查询当前聚集集合所有索引
db.集合名称.getIndexes()
2.12 查看总索引记录大小
db.集合名称.totalIndexSize()
2.13 读取当前集合的所有index信息
db.集合名称.reIndex()
2.14 删除指定索引
db.集合名称.dropIndex(索引名称)
2.15 删除所有索引
db.集合名称.dropIndexes()
三、用户相关
3.1 添加用户
db.addUser("name");
db.addUser("userName", "password", true) # 用户名,密码,是否只读
3.2 数据库认证、安全模式
db.auth("userName","password")
3.3 显示当前所有用户
show users
3.4 删除用户
db.removeUser("userName")
四、案例
4.1 新增文档(记录)
db.user.save({
"name":"张三",
"age":26,
"gender":"男"
})
#如果user集合不存在,会自动创建
类似于 insert into user(name,age,gender) values("张三",26,"男")
4.2 集合查询
测试数据如下图
4.2.1 查询所有记录
db.user.find()
db.getCollection('user').find({})
类似于 select * from user;
4.2.2 去重查询
db.user.distinct("name")
类似于 select distict name from user
4.2.3 = 查询
db.user.find({"name":"李四"})
类似于 select * from user where name = "李四"
4.2.4 > 查询
db.user.find({"age":{$gt:18}})
类似于 select * from user where age > 18
4.2.5 >= 查询
db.user.find({"age":{$gte:23}})
类似于 select * from user where age >= 23
4.2.6 < 查询
db.user.find({"age":{$lt:23}})
类似于 select * from user where age < 23
4.2.7 <= 查询
db.user.find({"age":{$lte:23}})
类似于 select * from user where age <= 23
4.2.8 >= 且 <= 查询
db.user.find({"age":{$gte:18,$lte:22}})
类似于 select * from user where age >= 18 and age <= 22
4.2.9 或、与 查询
db.user.find({"name":"张三","age":23}) 或
db.user.find({$and:[{"name":"张三"},{"age":23}]}).pretty()
类似于 select * from user where name = "张三" and age = 23
db.user.find({$or:[{"age":18},{"age":22}]})
类似于 select * from user where age = 18 or age = 22
4.2.10 like 查询
db.user.find({"name":/李/})
类似于 select * from user where name like '%李%'
db.user.find({"name":/^李/})
类似于 select * from user where name like '李%'
4.2.11 指定列查询
db.user.find({},{"name":1,"gender":1})
类似于 select id,name,gender fomr user
db.user.find({"age":22},{"name":1,"gender":1})
类似于 select id,name,age from user where age = 22
4.2.12 排序查询
db.user.find({}).sort({age:-1})
类似于 select * from user order by age desc
db.user.find({}).sort({age:1})
类似于 select * from user order by age asc
4.2.13 分页查询
db.user.find({}).limit(3)
类似于 select * from user limit 3
db.user.find({}).skip(0).limit(3)
类似于 select * from user limit 0,3
4.2.14 查询结果集的记录条数
db.user.find({"age":{$lt:22}}).count()
类似于 select count(*) from user where age < 22
4.3 聚合查询
聚合操作处理数据记录并返回计算结果。 聚合操作将多个文档中的值组合在一起,并可对分组数据执行各种操作,以返回单个结果。 在SQL中的 count(*)与group by组合相当于mongodb 中的聚合功能。
4.3.1 count 统计
db.user.aggregate({$group:{_id:null,count:{$sum:1}}})
类似于 select count(1) as count from user
db.user.aggregate({$group:{_id:null,count:{$sum:"$age"}}})
类似于 select count(age) as count from user
4.3.2 group 分组
db.user.aggregate({$group:{_id:"$gender",count:{$sum:"$age"}}})
类似于 select count(age) as count from user group by gender
4.3.3 max统计
db.user.aggregate({$group:{_id:"$gender",max:{$max:"$age"}}})
类似于 select max(age) as count from user group by gender
4.3.4 min 统计
db.user.aggregate({$group:{_id:"$gender",min:{$min:"$age"}}})
类似于 select min(age) as count from user group by gender
4.3.5 avg 统计
db.user.aggregate({$group:{_id:"$gender",age:{$avg:"$age"}}})
类似于 select avg(age) as count from user group by gender
4.3.6 push 统计
将指定的表达式的值添加到一个数组中,这个值不要超过16M,不然会出现错误
db.user.aggregate({$group:{_id:"$gender",ages:{$push:"$age"}}})
4.3.6 addToSet 统计
将表达式的值添加到一个数组中(无重复值),这个值不要超过16M,不然会出现错误
db.user.aggregate({$group:{_id:"$gender",ages:{$addToSet:"$age"}}})
4.4 修改
db.user.update({"age":22},{$set:{"name":"李师师"}},false,true)
类似于 update user set name = "李四" where age = 22
4.5 删除
db.user.remove({"age":26})
类似于 delete from user where age = 26