- 创建用户、修改用户
-
#root:只在admin数据库中可用。超级账号,超级权限。 #第一步创建超级管理员 mongo --host 192.168.31.210 --port 27017 use admin db.createUser({user:"root",pwd:"123456",roles:[{role:"root",db:"admin"}]}) #test用户可以操作test数据库,可读写,可以执行数据库管理命令 db.createUser( { user: "test", pwd: "123456", roles: [ { role: "dbAdmin", db: "test" },{ role: "readWrite", db: "test" } ] }) #可以修改test用户的角色 db.updateUser( "test", { roles : [ { role: "dbAdmin", db: "test" },{ role: "readWrite", db: "test" } ] })
-
可用角色列表
read:允许用户读取指定数据库 readWrite:允许用户读写指定数据库 dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户 clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。 readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限 readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限 userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限 dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。 root:只在admin数据库中可用。超级账号,超级权限。
-
- 常用命令
mongo --host 192.168.31.210 --port 27017 use test db.auth("test","123456") 块(chunk) 在一个shard server内部,MongoDB还是会把数据分为chunks,每个chunk代表这个shard server内部一部分数据,每个chunk的大小默认是64MB。 # 设置块大小为64M,默认是64M,可以根据实际情况进行调整 db.setting.save({"_id":"chunksize","value":64}) chunk的产生,会有以下两个用途: Splitting(切分) 当一个chunk的大小超过配置中的chunk size时,MongDB的后台进程会把这个chunk切分成更小的chunk,从而避免chunk过大的情况 Balancing(均衡) 在MongoDB中,balancer是一个后台进程,负责chunk的迁移,从而均衡各个shard server的负载 #分片操作 sh.enableSharding("test") sh.shardCollection("test.basedata.gaode.openlrorigin.flat",{"id":"hashed"}) #如果添加的是副本分片,函数结构: db.runCommand({addshard:"副本集名称/服务器地址:端口号"}) #移除 db.runCommand({"removeshard":"服务器地址:端口号"}) #开启数据库分片功能,命令很简单 enablesharding(),这里我就开启copp数据库 db.runCommand({enablesharding:"test"}) #开启copp数据库分片 #指定集合中分片的片键,这里我就指定为userInfo.userName,即userInfo集合中的userName字段。 db.runCommand({shardcollection:"test.userInfo",key:{"userName":1}}) 函数结构: db.runCommand({shardcollection:"数据库名称.集合名称 ",key:{"字段名称":1}}) 数据插入 for(vari=0;i<100000;i++){db.userInfo.insert({"userName":"user"+i,"depart":"towngas","userNo":"no."+i})} 插入数据成功后,会返回提示信息:WriteResult({“nInserted”:1}) #查看数据库占用空间 show dbs #查看集合 show collections #查看记录条数 db.userInfo.count() #查询记录 db.userInfo.find() #打印数据库分片信息 #查看所有分片服务器,必须进入到admin数据库下。 db.runCommand({"listShards":1}) #查看分片信息 sh.status()
- 索引操作
#创建索引 Key 值为你要创建的索引字段,1 为指定按升序创建索引,如果你想按降序来创建索引指定为 -1 即可。 db.collection.createIndex(keys, options) db.col.createIndex({"title":1}) db.col.createIndex({"title":1,"description":-1}) db.values.createIndex({open: 1, close: 1}, {background: true})
Parameter Type Description background Boolean 建索引过程会阻塞其它数据库操作,background可指定以后台方式创建索引,即增加 "background" 可选参数。 "background" 默认值为false。 unique Boolean 建立的索引是否唯一。指定为true创建唯一索引。默认值为false. name string 索引的名称。如果未指定,MongoDB的通过连接索引的字段名和排序顺序生成一个索引名称。 dropDups Boolean 3.0+版本已废弃。在建立唯一索引时是否删除重复记录,指定 true 创建唯一索引。默认值为 false. sparse Boolean 对文档中不存在的字段数据不启用索引;这个参数需要特别注意,如果设置为true的话,在索引字段中不会查询出不包含对应字段的文档.。默认值为 false. expireAfterSeconds integer 指定一个以秒为单位的数值,完成 TTL设定,设定集合的生存时间。 v index version 索引的版本号。默认的索引版本取决于mongod创建索引时运行的版本。 weights document 索引权重值,数值在 1 到 99,999 之间,表示该索引相对于其他索引字段的得分权重。 default_language string 对于文本索引,该参数决定了停用词及词干和词器的规则的列表。 默认为英语 language_override string 对于文本索引,该参数指定了包含在文档中的字段名,语言覆盖默认的language,默认值为 language. - xxxx
- xx
- xxxx
- xxxx