【MongoDB基础】

目录

一、概述

1.概念

2.相关

[2.1 实例](#2.1 实例)

[2.2 库](#2.2 库)

[2.3 集合](#2.3 集合)

[2.4 文档](#2.4 文档)

[2.5 主键](#2.5 主键)

3.特性

4,应用场景

二、安装

1.RPM安装

2.启动数据库

三、目录结构

[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.admin

2.local

3.config

五、数据库操作

1.库操作

[1.1 查看数据库](#1.1 查看数据库)

[1.2 显示当前所在数据库](#1.2 显示当前所在数据库)

[1.3 切换数据库](#1.3 切换数据库)

[1.4 数据库创建](#1.4 数据库创建)

[1.5 删除数据库](#1.5 删除数据库)

2.文档操作

[2.1 查看集合](#2.1 查看集合)

[2.2 创建集合](#2.2 创建集合)

[2.3 删除集合](#2.3 删除集合)

[2.4 插入数据(文档)](#2.4 插入数据(文档))

[2.5 查询数据](#2.5 查询数据)

[2.6 删除数据](#2.6 删除数据)

[2.7 更新数据](#2.7 更新数据)

六、MongoDB数据库备份

1.备份命令

[1.1 mongodump](#1.1 mongodump)

[1.2 mongoexport](#1.2 mongoexport)

2.恢复命令

[2.1 mongorestore](#2.1 mongorestore)

[2.2 mongoimport](#2.2 mongoimport)


一、概述

1.概念

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

2.相关

2.1 实例

系统上运行的mongodb的进程,类似于mysql实例。

2.2 库

每个数据库都是独立的,有自己的用户,权限,独立存储集合,类似于mysql的库。

2.3 集合

由一组文档构成,类似于mysql的表。

2.4 文档

mongodb数据库的最小数据集,是由多个键值对有序组合的数据单元,类似于mysql的数据记录。

2.5 主键

唯一标识一行数据

3.特性

  • 面向集合文档存储,适合存储json形式的数据;
  • 格式自由,数据格式不固定,数据结构发生变更的同时不会影响程序运行;
  • 面向对象的sql查询语句,基本涵盖关系型数据库的所有查询语句;
  • 有索引的支持,查询效率更快;
  • 支持复制和自动故障转移;
  • 可以使用分片集群提升查询性能

4,应用场景

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

二、安装

1.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

2.启动数据库

systemctl start mongod.service

三、目录结构

1.rpm -ql mongodb-org-server

/etc/mongod.conf 主配置文件

/run/mongodb PID文件

/usr/bin/mongod 启动命令

/var/lib/mongo 存储数据文件

/var/log/mongodb 日志

:主配置文件中监听端口 port: 27017,监听地址bindIp: 127.0.0.1

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 恢复数据库

四、默认数据库

1.admin

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

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

2.local

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

3.config

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

五、数据库操作

1.库操作

1.1 查看数据库

show databases

show dbs

1.2 显示当前所在数据库

db

1.3 切换数据库

use dbName

1.4 数据库创建

隐式创建

不用主动创建,使用use newDB,会自动创建不存在的数据库

只有在库中创建集合后才会保存,并使用show dbs查看到

1.5 删除数据库

use dbName

db.dropdatabase()

2.文档操作

2.1 查看集合

show tables

2.2 创建集合

db.createCollection("test")

2.3 删除集合

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

2.4 插入数据(文档)

单行

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

多行

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

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

2.5 查询数据

全集合查询

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()

2.6 删除数据

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

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

2.7 更新数据

db.test.update({''name'':"li"}, {$set:{''gender'':"helicopter"}})

所有满足条件的文档都进行更新:

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

更新文档进行数值更替:

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

六、MongoDB数据库备份

1.备份命令

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

1.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.恢复命令

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.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

相关推荐
TDengine (老段)9 分钟前
连接 TDengine 遇到报错 “failed to connect to server, reason: Connection refused” 怎么办?
大数据·数据库·物联网·时序数据库·iot·tdengine·涛思数据
李慕婉学姐1 小时前
Springboot黄河文化科普网站5q37v(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
数据库·spring boot·后端
Cabbage_acmer2 小时前
MySQL期中考试突击!
数据库·mysql
Lu Yao_2 小时前
Redis 缓存
数据库·redis·缓存
小桥流水人家哇2 小时前
性能测试单场景测试时,是设置并发读多个文件,还是设置不同的用户读不同的文件?
数据库·性能测试技巧
表示这么伤脑筋的题我不会2 小时前
Oracle 21C 部署ogg踩过的坑
数据库·oracle
你不是我我2 小时前
【Java 开发日记】MySQL 与 Redis 如何保证双写一致性?
数据库·redis·缓存
望获linux2 小时前
【实时Linux实战系列】实时 Linux 在边缘计算网关中的应用
java·linux·服务器·前端·数据库·操作系统
fredinators3 小时前
数据库专家
大数据·数据库
fredinators3 小时前
数据库flask访问
数据库·oracle·flask