MongoDB基础

本节主要学习了MongoDB的概述,应用场景,安装方式,目录结构,默认数据库,数据库操作,MongoDB数据备份


目录

一、概述

1、相关概念

2、特性

二、应用场景

三、安装

1、编译安装

2、rpm安装

3、启动数据库

四、目录结构

[1、rpm -ql mongodb-org-server](#1、rpm -ql mongodb-org-server)

[2、rpm -ql mongodb-org-shell](#2、rpm -ql mongodb-org-shell)

[3、rpm -ql mongodb-org-tools](#3、rpm -ql mongodb-org-tools)

五、默认数据库

六、数据操作

1、库操作

2、文档操作

查看集合

创建集合

删除集合

插入数据(文档)

查询数据

删除数据

更新数据

更新文档进行数值递增

七、MongoDB数据库备份

1、备份命令

1.mongodump

①选项

②语法

2.mongoexport

①选项

②语法

2、回复命令

1.mongorestore

①选项

②语法

2.mongoimport

①选项

②语法


一、概述

mongodb是一个nosql数据库,它有高性能、无模式、文档型的特点。是nosql数据库中功能最丰富,最像关系数据库的。数据库格式为BSON

1、相关概念

2、特性

二、应用场景

游戏 物流 社交 物联网 视频直播 大数据

三、安装

1、编译安装

2、rpm安装

mongodb-org-4.2

name=MongoDB Repository

baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.2/x86_64/

gpgcheck=1

enabled=1

gpgkey=https://www.mongodb.org/static/pgp/server-4.2.asc

安装:

yum install -y mongodb-org

3、启动数据库

systemctl start mongod.service

四、目录结构

1、rpm -ql mongodb-org-server

|------------------|------------------------------------------------|
| /etc/mongod.conf | 主配置文件 port: 27017 监听端口号 bindIp: 127.0.0.1 监听地址 |
| /run/mongodb | PID文件 |
| /usr/bin/mongod | 启动命令 |
| /var/lib/mongo | 存储数据文件 |
| /var/log/mongodb | 日志 |

2、rpm -ql mongodb-org-shell

/usr/bin/mongo 客户端命令

3、rpm -ql mongodb-org-tools

|-----------------------|-------|
| /usr/bin/mongodump | 备份数据库 |
| /usr/bin/mongoexport | 备份文档 |
| /usr/bin/mongoimport | 恢复文档 |
| /usr/bin/mongorestore | 恢复数据库 |

五、默认数据库

admin:

从权限的角度来看,这是"root"数据库。要是将一个用户添加到这个数据库,这个用户自动继承所有数据库的权限。

一些特定的服务器端命令也只能从这个数据库运行,比如列出所有的数据库或者关闭服务器。

local:

这个数据库永远不会被复制,可以用来存储限于本地单台服务器的任意集合。

config:

当Mongo用于分片设置时,config数据库在内部使用,用于保存分片的相关信息。

六、数据操作

1、库操作

|-----------|--------------------------------------------------------------------|
| 查看数据库 | show databases show dbs |
| 显示当前所在数据库 | db |
| 切换数据库 | use dbName |
| 数据库创建 | 隐式创建 不用主动创建,使用use newDB,会自动创建不存在的数据库 只有在库中创建集合后才会保存,并使用show dbs查看到 |
| 删除数据库 | db.dropdatabase() |

查看

切换数据库

删除数据库

2、文档操作

查看集合

show tables

创建集合

db.createCollection("test")

删除集合

db.需要删除的集合名称.drop()

插入数据(文档)

db.集合名称.insert({key:value}) 单行

db.集合名称.insertmany([{key:value},{key:value},{key:value}]) 多行

mongodb默认数字的数据类型float浮点型,若要改变为整型:NumberInt(数字)

查询数据

全集合查询 db.集合名称.find({}) db.集合名称.find()

条件查询 db.info.find({查询条件1key:value,查询条件2,...},{key1:1|0,key2:1|0,...})

key:1 显示,key:0 不显示

当显示的key只有一个时,key:1 只显示该key及对应value,key:0 显示除了该key之外其他所有keyvalue

查询集合中有多少文档

db.集合名称.count()

删除数据

全文删除 db.集合名称.remove({})

条件删除 db.集合名称.remove({key:value})

更新数据

db.info.update({_id:"3"}, {$set:{nickname:"jack"}}) 所有满足条件的文档都进行更新

原:

修改后

db.info.update({userid:"1003"},{$set:{nickname:"tom"}},{multi:true})

原来

替换

更新文档进行数值递增

db.info.update({userid:"1003"},{$inc:{likenum:NumberInt(1000)}})

创建

更新

七、MongoDB数据库备份

1、备份命令

1.mongodump

①选项

-h=hostname:port

-u=<username>

-p=<password>

--authenticationDatabase=<dbname>

-d=<database>

-o=<path>

②语法

mongodump -d dbName -h hostName:port -u userName -p Password -o backupDirectory

2.mongoexport

①选项

-h=hostname:port

-u=<username>

-p=<password>

--authenticationDatabase=<dbname>

-d=<database>

-o=<path>

②语法

mongoexport -d dbName -c tableName -h hostName:port -u userName -p Password -o backupDirectory/jsonFile.json

2、恢复命令

1.mongorestore

①选项

-h=hostname:port

-u=<username>

-p=<password>

--authenticationDatabase=<dbname>

-d=<database>

--drop 当目标数据库中存在同名集合则删除再恢复

②语法

mongorestore -h hostName -u username -p password -d dbName -c tableName bakcupDirector/bsonFile

2.mongoimport

①选项

-h=hostname:port

-u=<username>

-p=<password>

--authenticationDatabase=<dbname>

-d=<database>

--drop 当目标数据库中存在同名集合则删除再恢复

②语法

mongoimport -d dbName -c tableName -h hostName:port -u userName -p Password backupDirectory/jsonFile.json

查看生成文件

删除

恢复


相关推荐
DevOpenClub1 分钟前
职教高考及高职分类招生控制线 API 接口
java·数据库·高考
funnycoffee1232 分钟前
华为S5736交换机3层ECMP负载方式
linux·服务器·数据库
添砖java‘’3 分钟前
MySQL复合查询
数据库·mysql
星川水月5 分钟前
Access数据库快速入门——外部数据导入和SQL简单查询
数据库·sql·access
清平乐的技术专栏21 分钟前
一文读懂Kafka中的“消费”(对标MySQL数据库)
数据库·mysql·kafka
i220818 Faiz Ul23 分钟前
智慧养老平台|基于SprinBoot+vue的智慧养老平台系统(源码+数据库+文档)
java·前端·数据库·vue.js·spring boot·毕设·智慧养老平台
IT策士30 分钟前
Django 从 0 到 1 打造完整电商平台:登录与登出功能实现
数据库·django·sqlite
程序边界36 分钟前
标量子查询消除与向量化:一个被低估的协同效应
数据库
zero.cyx37 分钟前
软件设计师(4)数据库
数据库
.小小陈.1 小时前
MySQL 高频考点:表连接与索引全解析
数据库