zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    poj 2584 T-Shirt Gumbo (二分匹配)
    hdu 1757 A Simple Math Problem (乘法矩阵)
    矩阵之矩阵乘法(转载)
    poj 2239 Selecting Courses (二分匹配)
    hdu 3661 Assignments (贪心)
    hdu 1348 Wall (凸包)
    poj 2060 Taxi Cab Scheme (二分匹配)
    hdu 2202 最大三角形 (凸包)
    hdu 1577 WisKey的眼神 (数学几何)
    poj 1719 Shooting Contest (二分匹配)
  • 原文地址:https://www.cnblogs.com/moonlightL/p/7494978.html
Copyright © 2011-2022 走看看