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
posted @ 2017-09-08 23:33  关小西  阅读(354)  评论(0编辑  收藏  举报