MongoDB数据库安装

一、什么是MongoDB ?
MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。
在高负载的情况下,添加更多的节点,可以保证服务器性能
MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。
MongoDB 将数据存储为一个文档,数据结构由**键值(key=>value)**对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。

二、主要特点

1MongoDB 是一个面向文档存储的数据库,操作起来比较简单和容易
2可以在MongoDB记录中设置任何属性的索引 (如:FirstName=“Sameer”,Address=“8 Gandhi Road”)来实现更快的排序。
3可以通过本地或者网络创建数据镜像,这使得MongoDB有更强的扩展性。
4如果负载的增加(需要更多的存储空间和更强的处理能力) ,它可以分布在计算机网络中的其他节点上这就是所谓的分片。
5Mongo支持丰富的查询表达式。查询指令使用JSON形式的标记,可轻易查询文档中内嵌的对象及数组。
6MongoDb 使用update()命令可以实现替换完成的文档(数据)或者一些指定的数据字段 。
7Mongodb中的Map/reduce主要是用来对数据进行批量处理和聚合操作
8Map和Reduce。Map函数调用emit(key,value)遍历集合中所有的记录,将key与value传给Reduce函数进行处理。
9Map函数和Reduce函数是使用Javascript编写的,并可以通过db.runCommand或mapreduce命令来执行MapReduce操作。
10GridFS(网格文件系统)是MongoDB中的一个内置功能,可以用于存放大量小文件。能够实现存储单个大文件,或者海量小文件的一个分布式的文件系统,而文件是基于FS接口存储在mongodb中的。
11MongoDB允许在服务端执行脚本,可以用Javascript编写某个函数,直接在服务端执行,也可以把函数的定义存储在服务端,下次直接调用即可。
12MongoDB支持各种编程语言:RUBY,PYTHON,JAVA,C++,PHP,C#等多种语言。
13
支持地理位置空间索引
。敌如数据存储到数据库中,以某点为基准查找周围地理上的位置。
14支持查询性能剖析

三、MongoDB 下载
你可以在mongodb官网下载该安装包,地址为:https://www.mongodb.com/download-center#community
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
往下翻找到这个内容在这里插入图片描述

四、MongoDB 应用案例
下面列举一些公司MongoDB的实际应用:
1Craiglist上使用MongoDB的存档数十亿条记录。
2 FourSquare,基于位置的社交网站,在Amazon EC2的服务器上使用MongoDB分享数据。
3 Shutterfly,以互联网为基础的社会和个人出版服务,使用MongoDB的各种持久性数据存储的要求。
4 bit.ly, 一个基于Web的网址缩短服务,使用MongoDB的存储自己的数据。
5 spike.com,一个MTV网络的联营公司, spike.com使用MongoDB的。
6 Intuit公司,一个为小企业和个人的软件和服务提供商,为小型企业使用MongoDB的跟踪用户的数据。
7 sourceforge.net,资源网站查找,创建和发布开源软件免费,使用MongoDB的后端存储。
8 etsy.com ,一个购买和出售手工制作物品网站,使用MongoDB。
9 纽约时报,领先的在线新闻门户网站之一,使用MongoDB。
10 CERN,著名的粒子物理研究所,欧洲核子研究中心大型强子对撞机的数据使用MongoDB。

以上介绍完MongoDB中的作用下面开始安装MongoDB

环境:ip为192.168.80.100 主机名为mongodb 添加一块网卡

CentOS上安装epel-release的yum源之后就可以安装MongoDB,但是版本都是比较老的,如果使用MongoDB官方的yum就可以安装到比较新版本的MongoDB。

配置MongoDB的yum源:

[mongodb-org-4.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc

[root@mongodb yum.repos.d]# vi local.repo

在这里插入图片描述

安装MongoDB:

yum  install -y mongodb-org

注:yum安装会安装以下几个包:

MongoDB官方源中包含以下几个依赖包:
mongodb-org: MongoDB元数据包,安装时自动安装下面四个组件包:
mongodb-org-server: 包含Mongod守护进程和相关的配置文件和init系统服务脚本。
mongodb-org-mongos: 包含mongos的守护进程。
mongodb-org-shell: 包含mongo shell。
mongodb-org-tools: 包含MongoDB的管理工具: mongoimport, bsondump, mongodump, mongoexport, mongofiles, mongooplog, mongoperf, mongorestore, mongostat, and mongotop。

修改mongodb的配置文件

vi /etc/mongod.conf

bind_Ip=0.0.0.0 设置监听端口,方便连接
在这里插入图片描述
systemctl start mongod //开启mongodb服务第一种开启方法
netstat -anpt | grep mongod //查看mongodb的监听端口
在这里插入图片描述
pkill -9 mongod //杀死mongod服务
mongod -f /etc/mongod.conf //第二种启动方式
在这里插入图片描述
netstat -anpt | grep mongod //查看mongodb的监听端口
在这里插入图片描述
ps aux | grep mongod.conf //查看mongodb进程状况

进入mongo数据库中
mongo //进入数据库
在这里插入图片描述
mongo --port 27017 //以端口形式进入
在这里插入图片描述
以上是yum安装mongodb完成

MongoDB数据操作语句

在这里插入图片描述

一、mongodb数据库操作

1、创建数据库

use 数据库名称
注:如果数据库不存在,则创建数据库,否则切换到指定数据库。

2、查看所有数据库

show dbs
刚创建的数据库 runoob 并不在数据库的列表中, 要想显示它,我们需要向 runoob 数据库插入一些数据。

db.runoob.insert({“name”:“云计算”})

show dbs

MongoDB 中默认的数据库为 test,如果你没有创建新的数据库,集合将存放在 test 数据库中。

注意: 在 MongoDB 中,集合只有在内容插入后才会创建! 就是说,创建集合(数据表)后要再插入一个文档(记录),集合才会真正创建。

3、删除数据库

db.dropDatabase()

删除当前数据库,默认为 test,可以使用 db 命令查看当前数据库名。

注:只会删除show dbs显示的数据库,而且要进入到数据库中,再执行删除命令

二、mongodb集合操作

db.createCollection("name", { //集合的名字
          capped: <Boolean>,        //是否启用集合限制,如果开启需要制定一个限制条件,默认为不启用,这个参数没有实际意义
           autoIndexId: <Boolean>,   //是否使用_id作为索引,默认为使用(true或false)
           size: <number>,           //限制集合使用空间的大小,默认为没有限制,size的优先级比max要高
            max <number>}             //集合中最大条数限制,默认为没有限制
)

在这里插入图片描述

创建集合例子:

创建固定集合 mycol,整个集合空间大小 6142800 KB, 文档最大个数为 10000 个。

db.createCollection("mycol", { capped : true, autoIndexId : true, size : 
   6142800, max : 10000 } )

在 MongoDB 中,你不需要创建集合。当你插入一些文档时,MongoDB 会自动创建集合。

db.c02.insert({"name":"zhangsan","age":20})
db.c02.find()     //查找一个集合里面的所有内容

在这里插入图片描述
2、查看已有集合

show collections

在这里插入图片描述

3、删除集合

db.集合名称.drop()

4、更新文档

"db.集合名称.update(
	   <query>,
	   <update>,
	   {
	     upsert: <boolean>,
	     multi: <boolean>,
	     writeConcern: <document>
	   }
)"

参数说明:
query : update的查询条件,类似sql update查询内where后面的。
update : update的对象和一些更新的操作符(如 , , ,inc…)等,也可以理解为sql update查询内set后面的
upsert : 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
writeConcern :可选,抛出异常的级别。

$set既能添加也能更新
$inc只能更新

实例:通过 update() 方法来更新标题(title):

db.col.update({'title':'MongoDB 教程'},{$set:{'title':'MongoDB'}})

只更新第一条记录:

db.col.update( { "count" : { $gt : 1 } } , { $set : { "test2" : "OK"} } ); 

全部更新:

db.col.update( { "count" : { $gt : 3 } } , { $set : { "test2" : "OK"} },false,true );

只添加第一条:

db.col.update( { "count" : { $gt : 4 } } , { $set : { "test5" : "OK"} },true,false ); 

全部添加进去:

db.col.update( { "count" : { $gt : 5 } } , { $set : { "test5" : "OK"} },true,true ); 

全部更新:

db.col.update( { "count" : { $gt : 15 } } , { $inc : { "count" : 1} },false,true );

只更新第一条记录:

db.col.update( { "count" : { $gt : 10 } } , { $inc : { "count" : 1} },false,false );

在这里插入图片描述
添加一些内容
在这里插入图片描述
这里不能插入多个数据只能一个一个的后面的4,5按照上面的目录添加

db.c02.find().pretty()

在这里插入图片描述

db.c02.update({"name":"zhangsan"},{$set:{"age":6}})
db.c02.find().pretty()

在这里插入图片描述

将age为6的对应的名字改为lisi

db.c02.update({"age":6},{$set:{"name":"lisi"}})
db.c02.find().pretty()

在这里插入图片描述
将姓名为张三的age全部改为20

db.c02.update({"name":"zhangsan"},{$set:{"age":20}},false,true)
db.c02.find().pretty()

在这里插入图片描述
在这里插入图片描述
如果多条相同数据,只想删除第一条找到的记录可以设置 justOne 为 1:
db.集合名称.remove(查询条件,1)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值