MongoDB基础

网友投稿 276 2022-10-14

MongoDB基础

MongoDB基础

MongoDB简介

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

MongoDB的特点

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

实验环境

主机 软件包
CnetOS 7 mongodb-3.6

MongoDB的安装

1、配置YUM源仓库

vim /etc/yum.repos.d/mongodb-org.repo

[mongodb-org] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.6/x86_64/ gpgcheck=1 enabled=1 gpgkey=/etc/mongod.conf

bindIp: 0.0.0.0 #监听地址 port: 27017 #监听端口 auth=true #开启用户认证

systemctl start mongod.service netstat -anpt | grep 27017

tcp 0 0.0.0.0:27017 0.0.0.0:* LISTEN 3153/mongod

mongo db.version() #版本号

3.6.6

2、MongoDB多实例

cp -p /etc/mongod.conf /etc/mongod2.conf vim /etc/mongod2.conf

path: /data/mongodb/mongod2.log #日志文件存储目录 dbPath: /data/mongodb/mongo #数据存储目录 port: 27018 #端口不可相同

mkdir -p /data/mongodb/ cd /data/mongodb/ mkdir mongo #创建数据存储目录 touch mongod2.log #创建日志文件存储目录 chmod 777 mongod2.log #提权 mongod -f /etc/mongod2.conf #从第二个配置文件启动(-f:为强制) mongo --port 27018 #进入

MongoDB基本操作

MongoDB的基础操作主要是对数据库、集合、文档的操作,包括创建数据库、删除数据库、插入文档、更改文档、删除文档和查询文档。 MongoDB中常用的基本操作:

操作 描述
show dbs 查看当前实例下的数据库列表
show users 显示用户
use <db_name> 切换当前数据库
db.help() 显示数据库操作命令
show collection 显示当前数据库的集合
db.abc.help() 显示集合操作命令,abc是当前数据库下的集合
db.abc.find() 对当前数据库中abc集合进行数据查找

1、在MongoDB中创建和删除数据库

在MongoDB中如果数据库不存在,则创建数据库,否则切换到指定数据库;

mongo use school #使用school数据库

switched to db school

show dbs #查看

school 0.078GB local 0.078GB

db.dropDatabase() #删除数据库

{"dropped":"school","ok":1}

show dbs #查看

local 0.078GB

2、MongoDB的集合和文档操作

1)、 在MongoDB中使用insert()方法向集合中插入文档 例如:在abc集合中插入两个文档;一个插入id为1,名字是"zhangsan";一个插入id为2,名字为"lisi";db.abc.insert({"id":1,"name":"zhangsan"})db.abc.insert({"id":2,"name":"lisi"}) 2)、在MongoDB中使用update()方法来更新集合中的文档 例如:将abc集合中的id为1,名字为"zhangsan"的文档中的名字更改为"wangwu";db.abc.update({"id":1},{$set:{"name":"wangwu"}}) 3)、在MongoDB中使用remove来移除集合中的数据 例如:将id为2,名字为"lisi"的文档删除;db.abc.remove({"id":2}) 4)、在MongoDB中使用drop()删除集合 例如:将abc集合删除;db.abc.drop()

3、MongoDB数据的导入与导出

可以使用mongoexport和mongoimport命令来导出导入MongoDB的数据; 参数说明:-d:指明数据库的名字-c:指明集合的名字-f:指明要导出的那些列-o:指明导出的文件名-q:指明导出数据的过滤条件 1)、数据导出操作 mongoexport -d school -d abc -o /opt/abc.json#将school数据库中的abc集合中的数据导出到opt中的abc.json文件中 2)、数据导入操作 mongoimport -d school -d abc --file /opt/abc.json#将opt中的abc.json中的数据导入到school数据库中的abc集合中

4、MongoDB中的数据备份与恢复

可以使用mongodump命令来备份MongoDB数据;mongorestore命令来恢复MongoDB数据; 参数说明:-h:MongoDB所在的服务器地址-d:需要备份的数据库实例-o:备份的数据存放位置,该目录需要提前建立,在备份完成后,系统会自动在dump目录在建立一个test目录,在这么目录里面存放在数据库实例的备份数据。

mkdir /opt/backup #创建备份数据存放目录 mongodump -d school -o /opt/backup #备份 mongorestore -d school1 --dir=/opt/backup/school #恢复

5、复制数据库

在MongoDB中使用db.copyDatabase命令复制数据库; db.copyDatabase("school","school2")#将school数据库进行复制,名为school2

6、克隆集合

在多实例中可以将将一个实例中的数据库的集合克隆到另一个实例中;

mongod -f /etc/mongod2.conf mongo --port 27018 #进入第二个实例 db.runCommand({"cloneCollection":"school.abc","from":"192.168.27.128:27017"}) #将第一实例中的school数据库的abc集合克隆到第二个实例中

7、授权启动

可以配置授权用户来访问MongoDB,启动时必须指定auth=true,否则授权不起作用;

use admin db.createUser({"user":"root","pwd":"123","roles":["root"]}) db.auth("root","123") #登录

8、进程管理

db.currentOp() #查看进程

显示 "opid" : 4827,

db.killOp(4827) #终止进程

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:云计算防止入坑之通过跑分看云服务器的性能,给各位云计算入门者的一些建议
下一篇:再获认证,时速云成为 Linux 基金会 | CNCF官方认证 K8S 培训合作伙伴
相关文章

 发表评论

暂时没有评论,来抢沙发吧~