ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

常用基本操作

2022-05-20 00:35:42  阅读:171  来源: 互联网

标签:常用 log show rs db sh 文档 基本操作


mongodb常用基本操作

mongodb 默认存在的库

test:登录时,默认连接存在的库
管理MongoDB有关的系统库
> db	#查看当前所在哪个库
test
> show collections; show tables;
> 
> show databases; show dbs
admin   0.000GB
config  0.000GB
local   0.000GB
>


admin库:系统预留库,MongoDB系统日常管理库

> use admin
switched to db admin
> show collections; show tables;
system.version
> 

local库:本地预留库,存储关键日志,比如binlog
> 
> use local
switched to db local
> 
> show collections; show tables;
startup_log
> 
>

config库:MongoDB配置信息库,主要是存储集群配置信息
> 
> use config
switched to db config
> 
> show collections; show tables;
system.sessions
> 

show databases/show dbs
show tables/show collections
use admin 
db/select database()

命令种类

db 对象相关命令

# 库级别
db.[TAB][TAB]
db.help()		# 查看库db帮助的简易信息

# 表和文档
db.collection.[TAB][TAB]
db.collection.help()

# 具体信息查看,查官方文档
# https://docs.mongodb.com/v3.6/

# 在MongoDB中,db 和 collection 是不需要提前创建好的,只要通过语句告诉MongoDB,数据要往哪里录入,MongoDB会自动生成

rs 复制集有关(replication set):

rs.[TAB][TAB]
rs.help()
> 
> rs.
rs.add(                        rs.printReplicationInfo(
rs.addArb(                     rs.printSlaveReplicationInfo(
rs.apply(                      rs.propertyIsEnumerable(
rs.bind(                       rs.prototype
rs.call(                       rs.reconfig(
rs.compareOpTimes(             rs.remove(
rs.conf(                       rs.secondaryOk(
rs.config(                     rs.slaveOk(
rs.constructor                 rs.status(
rs.debug                       rs.stepDown(
rs.freeze(                     rs.syncFrom(
rs.hasOwnProperty(             rs.toLocaleString(
rs.help(                       rs.toString(
rs.initiate(                   rs.valueOf(
rs.isMaster(
> 

sh 分片集群(sharding cluster)

sh.[TAB][TAB]
sh.help()
> 
> sh.
sh.addShard(               sh.getBalancerState(       sh.removeTagRange(
sh.addShardTag(            sh.getBalancerWindow(      sh.setBalancerState(
sh.addShardToZone(         sh.getRecentFailedRounds(  sh.shardCollection(
sh.addTagRange(            sh.getRecentMigrations(    sh.splitAt(
sh.apply(                  sh.getShouldAutoSplit(     sh.splitFind(
sh.bind(                   sh.hasOwnProperty(         sh.startBalancer(
sh.call(                   sh.help(                   sh.status(
sh.constructor             sh.isBalancerRunning(      sh.stopBalancer(
sh.disableAutoSplit(       sh.moveChunk(              sh.toLocaleString(
sh.disableBalancing(       sh.propertyIsEnumerable(   sh.toString(
sh.enableAutoSplit(        sh.prototype               sh.updateZoneKeyRange(
sh.enableBalancing(        sh.removeRangeFromZone(    sh.valueOf(
sh.enableSharding(         sh.removeShardFromZone(    sh.waitForPingChange(
sh.getActiveMigrations(    sh.removeShardTag(
> 
>

mongodb对象操作

mongo         mysql
库    ----->  库
集合  ----->  表
文档  ----->  数据行

库的操作

# 建库
> use simon
switched to db simon
> 


# 删库
>db.dropDatabase()   
{ "dropped" : "test", "ok" : 1 }

> 
> db.drop[Tab][Tab]
db.dropAllRoles(  db.dropDatabase(  db.dropUser(
db.dropAllUsers(  db.dropRole(
> db.dropDatabase()
{ "ok" : 1 }
> 

集合的操作

# 建集合/表
# 方式1:
> db.createCollection('a')
{ "ok" : 1 }
> db.createCollection('b')

# 方法2:当插入一个文档的时候,一个集合就会自动创建。

use oldboy
db.test.insert({name:"zhangsan"})
db.stu.insert({id:101,name:"zhangsan",age:20,gender:"m"})
show tables;
db.stu.insert({id:102,name:"lisi"})
db.stu.insert({a:"b",c:"d"})
db.stu.insert({a:1,c:2})

# 在MongoDB中,同一个集合内可以有不同格式的文档

文档操作

#插入一条记录
> db.info.insert({"id":1,"score":88,"address":"金川校区","hobby":["game","talk","sport"]})

#向指定集合中插入一条文档数据
> db.collection.insertOne()

#向指定集合中插入多条文档数据
> db.collection.insertMany()
 
#通过循环批量插入数据
> for(var i=1;i<100;i++)db.info.insert({"id":i,"name":"jack"+i})

# 数据的批量录入:
for(i=1;i<100000;i++){db.log.insert({"uid":i,"name":"mongodb","age":6,"date":new Date()})}


# 查询数据行数:
> db.log.count()
    
# 全表查询:
> db.log.find()		# 等同 select *


#查询log集合uid为1的文档
> db.log.findOne({uid:1})

# 每页显示50条记录:
> DBQuery.shellBatchSize=50; 

# 按照条件查询
> db.log.find({uid:999})	# 等同 select * from tb where...
以标准的json格式显示数据
> db.log.find({uid:999}).pretty()
{
    "_id" : ObjectId("5cc516e60d13144c89dead33"),
    "uid" : 999,
    "name" : "mongodb",
    "age" : 6,
    "date" : ISODate("2019-04-28T02:58:46.109Z")
}

# 删除集合中所有记录,就是清空
app> db.log.remove({})

> db.log.remove({})
WriteResult({ "nRemoved" : 9999 })
>
# 按条件删除
> db.log.remove({uid:999})
WriteResult({ "nRemoved" : 1 })
>

修改文档

#修改info集合id=1的name值为"zhangsan"文档
db.info.update({"id":"1"},{$set:{"name":"zhangsan"}})

查看集合存储信息

app> db.log.totalSize() //集合中索引+数据压缩存储之后的大小   

    
# 查看集合大小
> db.log.totalSize()
696320
>

进程管理

1. 查看当前正在运行的进程的命令:
db.currentOp() ------> 获取opid进程号

2. 终止正在运行的高消耗资源的进程命令:
db.killOP(opid)

标签:常用,log,show,rs,db,sh,文档,基本操作
来源: https://www.cnblogs.com/oldSimon/p/16290858.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有