Instalação do MongoDB e instruções de operação comuns

Um, visão geral do MongoDB

1.1: Introdução

  • O MongoDB é um banco de dados de plataforma cruzada orientado a documentos. Pode atingir alto desempenho, alta disponibilidade e pode ser facilmente estendido. É um sistema de banco de dados de código aberto baseado no armazenamento de arquivos distribuídos.Em condições de alta carga, adicionar mais nós pode garantir o desempenho do servidor.
  • MongoDB também é um produto entre bancos de dados relacionais e não relacionais.É o mais versátil e mais parecido com banco de dados relacional entre os bancos de dados não relacionais. O principal motivo da não adoção do modelo relacional é a obtenção de melhor escalabilidade, já que o MongoDB não possui mais o conceito de 'linha', e seu modo de operação é baseado principalmente em dois conceitos: coleção e documento.

1.2: Recursos

  • Incluindo armazenamento orientado para coleta, liberdade de modelo, instruções de consulta ricas e índices de vários níveis, mecanismo de conjunto de replicação, fácil expansão horizontal, mecanismo de armazenamento conectável, suporte multi-plataforma cruzada, etc.
  • Simples de instalar, oferece função de armazenamento orientado a documentos, mais fácil de operar
  • Fornece funções de replicação, alta disponibilidade e fragmentação automática. Se a carga aumentar (mais espaço de armazenamento e maior poder de processamento são necessários), ele pode ser distribuído em outros nós na rede de computadores, o que é chamado de fragmentação
  • Suporte a expressões de consulta ricas. O comando query usa tags de formato JSON, que podem consultar facilmente os objetos e matrizes incorporados no documento
  • Suporte a várias linguagens de programação: Puby, Python, Java, C ++, PHP, C # e outras linguagens

1.3: Cenários aplicáveis

  • O MongoDB pode fornecer soluções de armazenamento de dados escalonáveis ​​e de alto desempenho para aplicativos da web. O MongoDB é usado principalmente em dados de sites, cenários distribuídos, armazenamento em cache de dados e armazenamento em formato de documento JSON. É adequado para aplicativos de Internet com grande volume de dados, alta simultaneidade e multitarefa. Seu mecanismo de expansão horizontal integrado oferece recursos de processamento de dados que variam de vários milhões a um bilhão, que podem atender aos requisitos de aplicativos Web 2.0 e de Internet móvel. Afirmação

Dois, instalação do MongoDB

  • Configurar yum source warehouse
[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	'重新加载一下'
  • Instale o 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

Três: operação do banco de dados mongodb

3.1: Operação básica

> 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: Importar e exportar dados

  • exportar dados
[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:指出
  • Importar dados
[root@localhost mongodb]# mongoimport -d school -c test --file users.json
[root@localhost mongodb]# mongo
> use school
> show collections
info 
test

3.3: Operação condicional

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

3.4: Backup e restauração

[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: Copie o banco de dados

> 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: Clonar a coleção

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

3.7: Criar um usuário administrativo

> 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: Gestão de Processo

> db.currentOp()
'只要注意opid'
	"opid" : 5409,
> db.killOp(5409)
'并不是删除数据库,而是将当前进程初始化'

Acho que você gosta

Origin blog.csdn.net/m0_47219942/article/details/108552702
Recomendado
Clasificación