学习MongoDB数据库

简介: 关于MongoDB的学习过程由下列的标题号顺序。一、什么是NoSQL?NoSQL(NoSQL = Not Only SQL ),意即"不仅仅是SQL"。在现代的计算系统上每天网络上都会产生庞大的数据量。这些数据有很大一部分是由关系数据库管理系统(RDMBSs)来处理。 1970年 E.F.Codd's提出的关系模型的论文 "A relational model of data for large shared data banks",这使得数据建模和应用程序编程更加简单。通过应用实践证明,关系模型是非常适合于客户服务器编程,远远超出预期的利益,今天它是结构化数据存储在网络和

关于MongoDB的学习过程由下列的标题号顺序。

一、什么是NoSQL?

NoSQL(NoSQL = Not Only SQL ),意即"不仅仅是SQL"。

在现代的计算系统上每天网络上都会产生庞大的数据量。

这些数据有很大一部分是由关系数据库管理系统(RDMBSs)来处理。 1970年 E.F.Codd's提出的关系模型的论文 "A relational model of data for large shared data banks",这使得数据建模和应用程序编程更加简单。

通过应用实践证明,关系模型是非常适合于客户服务器编程,远远超出预期的利益,今天它是结构化数据存储在网络和商务应用的主导技术。

NoSQL 是一项全新的数据库革命性运动,早期就有人提出,发展至2009年趋势越发高涨。NoSQL的拥护者们提倡运用非关系型的数据存储,相对于铺天盖地的关系型数据库运用,这一概念无疑是一种全新的思维的注入。

NoSQL用于超大规模数据的存储。(例如谷歌或Facebook每天为他们的用户收集万亿比特的数据)。这些类型的数据存储不需要固定的模式,无需多余操作就可以横向扩展

二、什么是MongoDB

MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。

在高负载的情况下,添加更多的节点,可以保证服务器性能。

MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。

MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。

三、MongoDB的基本功能以及语法。

创建数据库 use DATABASE_NAME

删除数据库 db.dropDatabase()

插入文档 db.COLLECTION_NAME.insert(document)

更新文档 db.collection.update( ,,{upsert: ,multi: ,writeConcern: })

db.collection.save(,{writeConcern: })

删除文档 db.collection.remove(,{justOne: ,writeConcern: })

查询文档 db.collection.find(query, projection)

AND >db.col.find({key1:value1, key2:value2}).pretty()

OR >db.col.find({$or: [{key1: value1}, {key2:value2}]}).pretty()

条件操作符$gt -------- greater than >

$gte --------- gt equal >=

$lt -------- less than <

$lte --------- lt equal <=

$ne ----------- not equal !=

$eq -------- equal =

$type操作符db.col.find({"title" : {$type : value}}) value表示对应的类型

limit和skip db.COLLECTION_NAME.find().limit(NUMBER)

db.COLLECTION_NAME.find().limit(NUMBER).skip(NUMBER)

排序 db.COLLECTION_NAME.find().sort({KEY:1}) 1升序-1降序

索引 db.COLLECTION_NAME.ensureIndex({KEY:1})可创建多个,1升序-1降序

聚合 db.COLLECTION_NAME.aggregate(AGGREGATE_OPERATION)

四、MongoDB单机部署和分片复制集部署

单机部署的话解压事先准备好的mongodb的压缩包,可以在界面解压也可以在Xshell中用命令解压。

创建conf文件夹来存放mongod.conf文件,通过指定配置文件来启动MongoDB。

dbpath=/data/volume_b/mongodb/data/db

logpath=/data/volume_b/mongodb/logs/mongodb.log

pidfilepath=/data/volume_b/mongodb/logs/mongod.pid

port=27017

fork=true

logappend=true

journal=true

dbpath是指向数据库路径。

logpath是指定日志文件路径,该文件将保存所有的日志记录、诊断信息。运用熟悉时可以通过mongdb.log这个日志文件来检查出错的地方。

pidfilepath是进程ID,没有指定则启动时候就没有PID文件。默认缺省,mongod.pid里面存放的是进程号,方便kill时查看,不用再ps aux来看进程号。

logappend是使用追加方式写日志。

port是端口。默认27017,MongoDB的默认服务TCP端口,监听客户端连接。富贵吧要是端口设置小于1024,比如1021,则需要root权限启动。

fork是否后台运行,设置为true 启动 进程在后台运行的守护进程模式

journal启用日志选项,MongoDB的数据操作将会写入到journal文件夹的文件里。

然后用numactl --interleave=all ./bin/mongod -config ./conf/mongod.conf来启动mongodb数据库。(为什么用numactl这个命令,是为了调整NUMA策略,让所有的node用来运行mongodb数据库)

这里列出三个最经常出现在mongodb数据库启动的错误。

(一)ERROR: child process failed, exited with error number 48

所在的端口27017mongo已经运行了你可以运行下面的命令来查看PID是使用的端口ntulp | grep 27017

(二)ERROR: child process failed, exited with error number 1

权限不够无法访问路径文件,或者你的路径设置有问题。

(三)ERROR: child process failed, exited with error number 100

你的mongod进程正在运行,要kill掉,具体看(四)

(四)还有就是使用完mongo数据库要正常退出。有两种方法:use admin然后db.shutdownServer()或者kill -9 进程号

五、分片复制集部署

这个部分还在研究。

目录
相关文章
|
7月前
|
NoSQL MongoDB 数据库
数据库数据恢复—MongoDB数据库数据恢复案例
MongoDB数据库数据恢复环境: 一台操作系统为Windows Server的虚拟机上部署MongoDB数据库。 MongoDB数据库故障: 工作人员在MongoDB服务仍然开启的情况下将MongoDB数据库文件拷贝到其他分区,数据复制完成后将MongoDB数据库原先所在的分区进行了格式化操作。 结果发现拷贝过去的数据无法使用。管理员又将数据拷贝回原始分区,MongoDB服务仍然无法使用,报错“Windows无法启动MongoDB服务(位于 本地计算机 上)错误1067:进程意外终止。”
|
7月前
|
缓存 NoSQL Linux
在CentOS 7系统中彻底移除MongoDB数据库的步骤
以上步骤完成后,MongoDB应该会从您的CentOS 7系统中被彻底移除。在执行上述操作前,请确保已经备份好所有重要数据以防丢失。这些步骤操作需要一些基本的Linux系统管理知识,若您对某一步骤不是非常清楚,请先进行必要的学习或咨询专业人士。在执行系统级操作时,推荐在实施前创建系统快照或备份,以便在出现问题时能够恢复到原先的状态。
661 79
|
7月前
|
存储 NoSQL MongoDB
MongoDB数据库详解-针对大型分布式项目采用的原因以及基础原理和发展-卓伊凡|贝贝|莉莉
MongoDB数据库详解-针对大型分布式项目采用的原因以及基础原理和发展-卓伊凡|贝贝|莉莉
332 8
MongoDB数据库详解-针对大型分布式项目采用的原因以及基础原理和发展-卓伊凡|贝贝|莉莉
|
6月前
|
运维 NoSQL 容灾
告别运维噩梦:手把手教你将自建 MongoDB 平滑迁移至云数据库
程序员为何逃离自建MongoDB?扩容困难、运维复杂、高可用性差成痛点。阿里云MongoDB提供分钟级扩容、自动诊断与高可用保障,助力企业高效运维、降本增效,实现数据库“无感运维”。
|
10月前
|
NoSQL MongoDB 数据库
数据库数据恢复——MongoDB数据库服务无法启动的数据恢复案例
MongoDB数据库数据恢复环境: 一台Windows Server操作系统虚拟机上部署MongoDB数据库。 MongoDB数据库故障: 管理员在未关闭MongoDB服务的情况下拷贝数据库文件。将MongoDB数据库文件拷贝到其他分区后,对MongoDB数据库所在原分区进行了格式化操作。格式化完成后将数据库文件拷回原分区,并重新启动MongoDB服务。发现服务无法启动并报错。
|
5月前
|
缓存 关系型数据库 BI
使用MYSQL Report分析数据库性能(下)
使用MYSQL Report分析数据库性能
444 158
|
5月前
|
关系型数据库 MySQL 数据库
自建数据库如何迁移至RDS MySQL实例
数据库迁移是一项复杂且耗时的工程,需考虑数据安全、完整性及业务中断影响。使用阿里云数据传输服务DTS,可快速、平滑完成迁移任务,将应用停机时间降至分钟级。您还可通过全量备份自建数据库并恢复至RDS MySQL实例,实现间接迁移上云。
|
5月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS费用价格:MySQL、SQL Server、PostgreSQL和MariaDB引擎收费标准
阿里云RDS数据库支持MySQL、SQL Server、PostgreSQL、MariaDB,多种引擎优惠上线!MySQL倚天版88元/年,SQL Server 2核4G仅299元/年,PostgreSQL 227元/年起。高可用、可弹性伸缩,安全稳定。详情见官网活动页。
1038 152
|
5月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎
阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎,提供高性价比、稳定安全的云数据库服务,适用于多种行业与业务场景。
814 156
|
5月前
|
缓存 监控 关系型数据库
使用MYSQL Report分析数据库性能(中)
使用MYSQL Report分析数据库性能
421 156

推荐镜像

更多