zoukankan      html  css  js  c++  java
  • mongodb 3 常用命令操作

    操作命令详见,这个归类很好,有些教程乱麻麻的

    http://www.tuicool.com/articles/j2ueau

     mongodb 客户端:

    ./mongo
    ./mongo 127.0.0.1:27017/dabasename -uusername -ppasswd

     

    db.createUser({user:"zhihuiroot",pwd:"zhihui23434",roles:[{role:"root",db:"admin"}]});
    db.createUser({user:"dba",pwd:"eGeemZZ0tFRap222",roles:[{role:"dbAdmin",db:"admin"}]});
    
    
    db.createUser({user:"zhihui",pwd:"zhihui1111",roles:[{role:"readWrite",db:"zhidu"}]});
    
    
    database级操作
    #查看服务器上的数据库
    > show dbs
    #切换数据库
    > use DBNAME
    #查看当前数据库中的所有集合
    > show collections
    # 创建数据库
    > use test2
    #删除数据库
    > db.dropDatabase()
    #查看当前数据库
    > db
    
    collection级操作
    #新建collection
    > db.createCollection("Hello")
    #删除collection,返回true说明删除成功,false说明没有删除成功。
    > db.Hello.drop()
    #重命名collection,将hello2集合重命名为HELLO
    > PRIMARY> db.hello2.renameCollection("HELLO")
    #查看当前数据库中的所有collection
    >show collections
    #查询指定返回字段
    >db.member.find({},{_id:1,nickname:1});
    
    #删除指定文档
    >db.member.remove({_id:ObjectId("583100c304ca4e412f80f065")})
    
    #更新字段
    >db.item.update({_id:ObjectId("585401e304ca4e15c2dc5261")},{"$set":{"invalid":1}})
    #删除文档中的字段
    >db.item.update({_id:ObjectId("585401e304ca4e15c2dc5261")},{"$unset":{"invalid":1}})
    
    
    针对集合中记录的操作
    #向user集合中插入两条记录
    > db.user.insert({'name':'Gal Gadot','gender':'female','age':28,'salary':11000
    #查找集合中的所有记录 
    > db.user.find()
    
    
    #单一条件(查找集合中的符合条件的记录 ) a)Exact Equal:查询age为了23的数据
    > db.user.find({"age":23})
    #Great Than:查询salary大于5000的数据
    > db.user.find({salary:{$gt:5000}})
    #Fuzzy Match:查询name中包含'a'的数据
    > db.user.find({name:/a
    #查询name以G打头的数据
    > db.user.find({name:/^G/})
    
    #多条件"与":查询age小于30,salary大于6000的数据
    > db.user.find({age:{$lt:30},salary:{$gt:6000}})
    
    #多条件"或":查询age小于25,或者salary大于10000的记录
    > db.user.find({$or:[{salary:{$gt:10000}},{age:{$lt:25
    
    
    #查询第一条记录
    > db.user.findOne({$or:[{salary:{$gt:10000}},{age:{$lt:25}}]})
    #查询记录的指定字段(注意:这里的1表示显示此列的意思,也可以用true表示。) 
    > db.user.find({},{name:1,age:1,salary:1,sex_orientation:true})
    
    #查询gender字段的数据,并去掉重复数据
    > db.user.distinct('gender')
    
    对查询结果集的操作 
    #Pretty Print,为了方便,mongo也提供了pretty print工具,db.collection.pretty()或者是db.collection.forEach(printjson)
    > db.user.find().pretty()
    #指定结果集显示的条目,a)显示结果集中的前3条记录
    > db.user.find().limit(3)
    # b)查询第1条以后的所有数据
    > db.user.find().skip(1)
    
    #对结果集排序:升序
    > db.user.find().sort({salary:1})
    #降序
    > db.user.find().sort({salary:-1})
    
    统计查询结果中记录的条数 
    #统计集合中的所有记录条数
    > db.user.find().count()
    
    #查询符合条件的记录数,查询salary小于4000或大于10000的记录数
    > db.user.find({$or: [{salary: {$lt:4000}}, {salary: {$gt:10000}}]}).count()
    
    # 查询大于指定日期的结果集
    > db.getCollection('ibt').find({"createTime":{$gte:new Date("2019-03-29T00:00:00.00Z")}}).sort({"createTime":-1})
    
    # 多条件组合查询
    > db.getCollection('ibt').find({result:{"$elemMatch": {"seqId":2}},"createTime":{$gte:new Date("2019-03-29T00:00:00.00Z")}})
    
    #模糊匹配
    >db.getCollection('ibt').find({"sId":{$regex:/e08.*/i}})
    
    #分页查询
    > db.getCollection('ibt').find({"createTime":{$gte:new Date("2019-03-29T00:00:00.00Z")}}).sort({"createTime":-1}).limit(2)
    

      

     

    mongodb3创建用户

    http://www.tuicool.com/articles/V3eqyij

    #在admin下创建的帐号,不能直接在其他库验证,
    #只能在帐号创建库下认证,再去其他库进行操作。
    db.createUser({user:"zd",pwd:"1234455",roles:[{role:"readWrite",db:"zhidu"}]});
    Built-In Roles(内置角色):
        1. 数据库用户角色:read、readWrite;
        2. 数据库管理角色:dbAdmin、dbOwner、userAdmin;
        3. 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
        4. 备份恢复角色:backup、restore;
        5. 所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
        6. 超级用户角色:root  
        // 这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase)
        7. 内部角色:__system

     1、查询所有用户:

    use admin
    db.system.users.find().pretty()

    2、删除用户:

    db.system.users.remove({user:"zhidu"})

    3、修改密码:

    db.addUser("zhidu","java1");

     

    4、关闭本地例外登录方式

    一旦拥有了超级管理员,就可以考虑强制登录了

    方法如下:

    重启数据库,启动时候加上--auth即可,这样登录的话就必须要用账户认证了

    客户端连接后,要先切换数据库到所创建用户的db,这一点相当坑哈

    然后使用:db.auth("id","passwd")

    5、备份整库

    ./mongodump -h 127.0.0.1 -d dbname -o savePath -u username -p passwd --authenticationDatabase dbname

    6、恢复整库

    ./mongorestore -h 127.0.0.1 -d dbname -u username -p passwd  --authenticationDatabase  admin --drop filepath

  • 相关阅读:
    C#中Dictionary的用法
    System.Timers.Timer用法
    C#中的异步调用及异步设计模式(三)——基于事件的异步模式
    C#中的异步调用及异步设计模式(二)——基于 IAsyncResult 的异步设计模式
    C#中的异步调用及异步设计模式(一)
    [你必须知道的异步编程]——异步编程模型(APM)
    strncasecmp与strcasecmp用法
    C语言之strrchr函数
    HDU 5289 Assignment (ST算法区间最值+二分)
    poj 1733 Parity game(种类并查集)
  • 原文地址:https://www.cnblogs.com/jifeng/p/5906237.html
Copyright © 2011-2022 走看看