Instrucciones de instalación y funcionamiento común de MongoDB

Uno, descripción general de MongoDB

1.1 Introducción

  • MongoDB es una base de datos multiplataforma orientada a documentos. Puede lograr un alto rendimiento, alta disponibilidad y se puede ampliar fácilmente. Es un sistema de base de datos de código abierto basado en el almacenamiento de archivos distribuido. En condiciones de alta carga, agregar más nodos puede garantizar el rendimiento del servidor.
  • MongoDB es también un producto entre bases de datos relacionales y no relacionales, es la base de datos relacional más versátil y más parecida entre las bases de datos no relacionales. La principal razón para no adoptar el modelo relacional es obtener una mejor escalabilidad, MongoDB ya no tiene el concepto de 'fila', y su modo de operación se basa principalmente en dos conceptos: colección y documento.

1.2: Características

  • Incluyendo almacenamiento orientado a colecciones, libertad de modelo, declaraciones de consulta enriquecidas e índices de múltiples niveles, mecanismo de conjunto de replicación, fácil expansión horizontal, motor de almacenamiento conectable, soporte multiplataforma en múltiples idiomas, etc.
  • Fácil de instalar, proporciona una función de almacenamiento orientada a documentos, más fácil de operar
  • Proporciona funciones de replicación, alta disponibilidad y fragmentación automática. Si la carga aumenta (se requiere más espacio de almacenamiento y una mayor potencia de procesamiento), se puede distribuir en otros nodos de la red informática, lo que se denomina fragmentación.
  • Admite expresiones de consulta enriquecidas. El comando de consulta utiliza etiquetas de formato JSON, que pueden consultar fácilmente los objetos y matrices incrustados en el documento.
  • Admite varios lenguajes de programación: Puby, Python, Java, C ++, PHP, C # y otros lenguajes

1.3: Escenarios aplicables

  • MongoDB puede proporcionar soluciones de almacenamiento de datos escalables y de alto rendimiento para aplicaciones web. MongoDB se utiliza principalmente en datos de sitios web, escenarios distribuidos, almacenamiento en caché de datos y almacenamiento de formato de documentos JSON. Es adecuado para aplicaciones de Internet con gran volumen de datos, alta concurrencia y multitarea. Su mecanismo de expansión horizontal incorporado proporciona capacidades de procesamiento de datos que van desde varios millones a mil millones, que pueden cumplir con los requisitos de Web2.0 y aplicaciones de Internet móvil. Reclamación

Dos, instalación de MongoDB

  • Configurar el almacén de origen de 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	'重新加载一下'
  • Instalar 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

Tres: operación de la base de datos mongodb

3.1: Operación 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 y exportar datos

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

3.3: Operación condicional

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

3.4: Copia de seguridad y restauración

[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: Copiar la base de datos

> 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 la colección

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

3.7: crear un usuario 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: Gestión de procesos

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

Supongo que te gusta

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