zoukankan      html  css  js  c++  java
  • mongdb ---shard

    http://blog.fens.me/mongodb-shard/

    https://segmentfault.com/a/1190000004263332

    1. 和用户管理相关的操作基本都要在admin数据库下运行,要先use admin;

    2. 如果在某个单一的数据库下,那只能对当前数据库的权限进行操作;

    3. db.addUser是老版本的操作,现在版本也还能继续使用,创建出来的user是带有root role的超级管理员

    dbAdmin 在db范围内包括下面的权限:

    collStats
    dbHash
    dbStats
    find
    killCursors
    listIndexes
    listCollections
    dropCollection 和 createCollection on system.profile only

    userAdmin在db范围内包括如下权限:

    changeCustomData
    changePassword
    createRole
    createUser
    dropRole
    dropUser
    grantRole
    revokeRole
    viewRole
    viewUser

    readAnyDatabase 对所有数据库中的collection可读,同时包含listDatabases权限

    readWriteAnyDatabase 对所有数据库中的collection可读且可写,同时包含listDatabases权限

    userAdminAnyDatabase 对所有数据库拥有userAdmin角色,同时包含listDatabases权限

    dbAdminAnyDatabase 对所有数据库拥有dbAdmin角色,同时包含listDatabases权限

    cluster相关的权限 clusterMonitor、hostManager、clusterManager、clusterAdmin

    root权限, 包含 readWriteAnyDatabase, dbAdminAnyDatabase, userAdminAnyDatabase 和 clusterAdmin 等角色。 但不能访问system. 开头的collection(root does not include any access to collections that begin with the system. prefix.)

    __system 超级角色

    db.createUser(
    {
    user: "superAdmin",
    pwd: "superAdmin",
    roles: [ { role: "__system", db: "admin" } ]
    }
    )

     db.createUser(

      {
        user: "admin",
        pwd: "admin",
        roles:
        [
          {
            role: "userAdminAnyDatabase",//userAdmin//dbOwner
            db: "admin"
          }
        ]
      }
    )
     


    db.dropUser('sss')

    db.addUser("liulinqiang","123456")
    db.system.users.find()
    db.user.find({"age":26})
    查询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}}]})
    将上面的find替换为findOne()可以查找符合条件的第一条记录。
    > db.user.findOne({$or:[{salary:{$gt:10000}},{age:{$lt:25}}]})

    查询记录的指定字段
    查询user集合中所有记录的name,age,salary,sex_orientation字段
    > db.user.find({},{name:1,age:1,salary:1,sex_orientation:true})

    查询gender字段的数据,并去掉重复数据> db.user.distinct('gender')[ "male", "female" ]

    对查询结果集的操作
    (1)Pretty Print
    为了方便,mongo也提供了pretty print工具,db.collection.pretty()或者是db.collection.forEach(printjson)
    > db.user.find().pretty()

    指定结果集显示的条目
    a)显示结果集中的前3条记录 > db.user.find().limit(3)
    查询第1条以后的所有数据 > db.user.find().skip(1)

    对结果集排序
    升序 > db.user.find().sort({salary:1})
    降序 > db.user.find().sort({salary:-1})

    统计查询结果中记录的条数
    (1)统计集合中的所有记录条数 > db.user.find().count()
    查询符合条件的记录数
    查询salary小于4000或大于10000的记录数
    > db.user.find({$or: [{salary: {$lt:4000}}, {salary: {$gt:10000}}]}).count()

    Mongodb install:
    Vim repo.file
    Yum install
    Service mongod start
    Service mongod status
    (5、验证MongoDB
    可以通过检查日志文件/var/log/mongodb/mongod.log的内容来判断mongod进程是否正常运行。
    也可以执行命令:
    $ sudo chkconfig mongod on)
    Mongostat--statistics
    Mongo--CLI


    5)mongodb-org-tools
    此包里面有以下的MongoDB工具:mongoimport、bsondump、mongodump、 mongoexport、mongofiles、mongoimport、mongooplog、mongoperf、mongorestore、 mongostat以及mongotop。

  • 相关阅读:
    Hibernate使用固定值关联表
    使用spring-data-JPA调用存储过程
    angularjs动态添加节点时,绑定到$scope中
    JPA子查询
    表格表头固定的一种实现方式
    Unicode、UTF8与UTF16
    primefaces4.0基本教程以及增删改查
    tomcat发布webservice
    KonBoot – 只要5K映象文件轻易绕过您的WindowsXP/VISTA/7系统的密码
    Setting .xap MIME Type for Silverlight
  • 原文地址:https://www.cnblogs.com/SZLLQ2000/p/5160435.html
Copyright © 2011-2022 走看看