MongoDB安装以及常用操作指令

一、MongoDB概述

1.1:简介

  • MongoDB是一款跨平台、面向文档的数据库。可以实现高性能、高可用性,并且能够轻松扩展。是一个基于分布式文件存储的开源数据库系统,在高负载的情况下,添加更多的节点,可以保证服务器性能。
  • MongoDB也是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。不采用关系模型主要是为了获得更好的扩展性,MongoDB不再有‘行’(row)的概念,其运行方式主要基于两个概念:集合(collection)与文档(document)。

1.2:特点

  • 包括面向集合存储、模式自由、丰富的查询语句和多级索引、复制集机制、易于水平扩展、可插入存储引擎、跨平台多语言支持等
  • 安装简单,提供了面向文档存储功能,操作起来比较容易
  • 提供了复制、高可用性和自动分片功能。如果负载增加(需要更多的存储空间和更强的处理能力),它可以分布在计算机网络中的其他节点上,这就是所谓的分片
  • 支持丰富的查询表达式。查询指令使用JSON形式的标记,可轻易查询文档中内嵌的对象及数组
  • 支持各种编程语言:Puby、Python、Java、C++、PHP、C#等多种语言

1.3:适用场景

  • MongoDB可以为Web应用提供可扩展的高性能存储数据解决方案。MongoDB主要使用领域有网站数据、分布式场景、数据缓存和JSON文档格式存储。合适大数据量、高并发、若事务的互联网应用,其内置的水平扩展机制提供了从几百万到十亿级别的数据处理能力,可以很好地满足Web2.0和移动互联网应用数据存储地要求

二、MongoDB安装

  • 配置yum源仓库
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# vim mongodb-org.repo
[mangodb-org]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.6/x86_64/
gpgcheck=1		'开启检查'
enabled=1		'开启'
gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc
[root@localhost yum.repos.d]# yum list	'重新加载一下'
  • 安装MongoDB
[root@localhost yum.repos.d]# yum install mongodb-org -y	'安装mongodb工具包'
[root@localhost yum.repos.d]# vim /etc/mongod.conf 
net:
  port: 27017  
  bindIp: 0.0.0.0   '将自己的地址改成任意地址,允许别人访问'
[root@localhost yum.repos.d]# systemctl start mongod.service  '开启服务'
[root@localhost yum.repos.d]# netstat -ntap |grep mongod
tcp        0      0 0.0.0.0:27017           0.0.0.0:*               LISTEN      12857mongod  
[root@localhost yum.repos.d]# iptables -F
[root@localhost yum.repos.d]# setenforce 0
[root@localhost yum.repos.d]# mongo
exit退出
'配置mongo2,创建第二个实例'
[root@localhost yum.repos.d]# cd /etc/
[root@localhost etc]# cp -p mongod.conf mongod2.conf 
[root@localhost etc]# vim mongod2.conf 
systemLog:
path: /data/mongodb/mongod2.log 	'日志文件地址'
storage:
  dbPath: /data/mongodb/mongo	'数据文件存储的目录'
net:
  port: 27018
[root@localhost etc]# mkdir -p /data/mongodb '创建目录'
[root@localhost etc]# cd /data/mongodb/
[root@localhost mongodb]# mkdir mongod
[root@localhost mongodb]# touch mongod2.log		'创建日志文件'
[root@localhost mongodb]# chmod 777 mongod2.log 	'增加权限'
[root@localhost mongodb]# ls
mongod  mongod2.log
[root@localhost mongodb]# mv mongod mongo
[root@localhost mongodb]# mongod -f /etc/mongod2.conf  '开启指定mongo2的文件去登录'
about to fork child process, waiting until server is ready for connections.
forked process: 13983
child process started successfully, parent exiting
netstat -ntap mongod
[root@localhost mongodb]# mongo --port 27018

三:mongodb数据库操作

3.1:基本操作

> show dbs	 '查看数据库'
admin   0.000GB
config  0.000GB
local   0.000GB
> db.version()	'查看版本'
3.6.20	

ues school;   '不存在会创建,不建立集合又会删除'
> show dbs
admin   0.000GB
config  0.000GB
local   0.000GB
db.createCollection('info')  '创建集合,info表示集合'
> show dbs
admin   0.000GB
config  0.000GB
local   0.000GB
school  0.000GB
> show collections
info
db.info.find()	'查找'
插入数据
db.info.insert({"id":1,"name":"zhangsan","score":99,"hobby":["game","talk"]})
WriteResult({ "nInserted" : 1 })

> db.info.find()
{ "_id" : ObjectId("5f5c21d3a50e49270a4c7d96"), "id" : 1, "name" : "zhangsan", "score" : 99, "hobby" : [ "game", "talk" ] }
> a=db.info.find()	并赋予别名a
> for(var i=1;i<=100;i++)db.info.insert({"id":i,"name":"jack"+i}) '字符串连接中间加+号,会将后面的自动转换成字符串'
> it '查看更多'

> a=db.info.findOne ({"id":10})  '查找指定的第十条记录并赋予别名'
{
	"_id" : ObjectId("5f5c239fa50e49270a4c7da0"),
	"id" : 10,
	"name" : "jack10"
}

  
> typeof(a.id)	'查看属性类型'
number
> typeof(a.name)
string

> db.info.update({"id":10},{$set:{"name":"tom"}})   '修改'
> a=db.info.findOne({"id":10})
{ "_id" : ObjectId("5f5c239fa50e49270a4c7da0"), "id" : 10, "name" : "tom" }

show collections  '查看集合'
db.info.drop	'删除集合'

'删除数据库'
show dbs
use 数据库名
db.dropDatabase() 

'统计'  
db.info.count()
显示
100

3.2:导入导出数据

  • 导出数据
[root@localhost mongodb]# mongoexport -d school -c info -o /opt/school.json
2020-09-12T09:37:45.716+0800	connected to: localhost
2020-09-12T09:37:45.716+0800	exported 0 records
[root@localhost mongodb]# cd /opt/
[root@localhost opt]# ls
rh  school.json
-d:指定数据库
-c:指定集合
-o:指出
  • 导入数据
[root@localhost mongodb]# mongoimport -d school -c test --file users.json
[root@localhost mongodb]# mongo
> use school
> show collections
info 
test

3.3:条件操作

[root@localhost opt]# mongoexport -d school -c info -q '{"id":{"$eq":10}}' -o /opt/top10.json
'导出第十行'

3.4:备份和恢复

[root@localhost opt]# mkdir /backup
[root@localhost opt]# mongodump -d school -o /opt/backup
[root@localhost opt]# ls
backup  info.json  rh  school.json  top10.json
[root@localhost opt]# cd backup/
[root@localhost backup]# ls
school
[root@localhost backup]# cd school/
[root@localhost school]# ls
test.bson  test.metadata.json

[root@localhost school]# mongorestore -d abc --dir=/opt/backup/school
[root@localhost school]# mongo
> show dbs;
abc     0.000GB

3.5:复制数据库

> use school
switched to db school
> for(var i=1;i<=100;i++)db.users.insert({"id":1,"name":"jack"+1})
WriteResult({ "nInserted" : 1 })
> show tables;
> db.users.find()
> db.copyDatabase("school","share")
{ "ok" : 1 }
> use share
> db.users.find()

3.6:克隆集合

mongo --port 27018
> db.runCommand({"cloneCollection":"school.users","from":"20.0.0.51:27017"})

3.7:创建管理用户

> use admin
switched to db admin
> db.createUser({"user":"root","pwd":"123","roles":["root"]})
Successfully added user: { "user" : "root", "roles" : [ "root" ] } 
roles表示角色,也就是权限
> db.auth("root","123"

3.8:进程管理

> db.currentOp()
'只要注意opid'
	"opid" : 5409,
> db.killOp(5409)
'并不是删除数据库,而是将当前进程初始化'
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值