MongoDB-基础

MongoDB-简介

1、简介
MongoDB是基于文档的存储的(而非表),是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似json的bjson格式,因此可以存储比较复杂的数类型。模式自由(schema-free),意味着对于存储在MongoDB数据库中的文件,我们不需要知道它的任何结构定义。果需要的话,你完全可以把不同结构的文件存储在同一个数据库里。Mongo最大的特点是他支持的查询语言非常强大其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据立索引。

Mongo主要解决的是海量数据的访问效率问题。因为Mongo主要是支持海量数据存储的,所以Mongo还自带了一个出的分布式文件系统GridFS,可以支持海量的数据存储。由于Mongo可以支持复杂的数据结构,而且带有强大的数据查功能,因此非常受到欢迎。
2、优势
易扩展: NoSQL数据库种类繁多, 但是⼀个共同的特点都是去掉关系数据库的关系型特性。 数据之间⽆关系, 这样就⾮常容易扩展
⼤数据量, ⾼性能: NoSQL数据库都具有⾮常⾼的读写性能, 尤其在⼤数据量下, 同样表现优秀。 这得益于它的⽆关系性, 数据库的结构简单
灵活的数据模型: NoSQL⽆需事先为要存储的数据建⽴字段, 随时可以存储⾃定义的数据格式。 ⽽在关系数据库⾥, 增删字段是⼀件⾮常麻烦的事情。 如果是⾮常⼤数据量的表, 增加字段简直就是⼀个噩梦
3、应用场景
1、京东,中国著名电商,使用MongoDB存储商品信息,支持比价和关注功能.
2、赶集网,中国著名分类信息网站,使用MongoDB记录pv浏览计数
3、奇虎360,著名病毒软件防护和移动应用平台,使用MongoBD支撑的HULK平台每天接受200亿次的查询.
4、百度云,使用MongoDB管理百度云盘中500亿条关于文件源信息的记录.
5、CERN,著名的粒子物理研究所,欧洲核子研究中心大型强子对撞机的数据使用MongoDB
6、纽约时报,领先的在线新闻门户网站之一,使用MongoDB
7、sourceforge.net,资源网站查找,创建和发布开源软件免费,使用MongoDB的后端存储
8、公司官网 业务推广,网页访问线索的存储
4、不适合场景
1、高度事物性的系统:例如银行或会计系统。传统的关系型数据库目前还是更适用于需要大量原子性复杂事务的应程序。
2、传统的商业智能应用:针对特定问题的BI数据库会对产生高度优化的查询方式。对于此类应用,数据仓库可能是合适的选择。
3、需要SQL的问题

MongoDB-基础

1、基础-数据库
1、一个集合的物理容器。一个单一的MongoDB服务器通常有多个数据库。
2、MongoDB中多个文档组成集合,同样多个集合可以组成数据库。一个MongoDB实例可以承载多个数据库,它们之可视为完全独立的。每个数据库都有独立的权限控制,即便是在磁盘上,不同的数据库也放置在不同的文件中。将一应用的所有数据都存储在同一个数据库中的做法就很好。要想在同一个MongoDB服务器上存放多个应用或者用户的据,就要使用不同的数据库了。
3、命名规则
  1、不能是空字符串("")。
  2、不得含有''(空格)、.、$、/、\和\0(空字符)。
  3、应全部小写。
  4、最多64字节。
  5、保留的数据库名:admim local config
2、基础-集合
集合就是一组文档。如果说MongoDB中的文档类似于关系型数据库中的行,那么集合就如同表。

1、无模式
  集合是无模式的。这意味着一个集合里面的文档可以是各式各样的。
2、命名
  1、集合名不能是空字符串""。
  2、集合名不能还有\0字符(空字符),这个字符表示集合名的结尾
  3、集合名不能以"system"开头,这是为系统集合保留的前缀。
  4、用户创建的集合名字不能含有保留字符$。有些驱动程序的确支持在集合名里面包含$。这是因为某些系成的集合中  包含该字符。除非你要访问这种系统创建的集合,否则千万不要在名字里出现$。
3、子集合
  组织集合的一种惯例是使用"."字符分开的安命名空间划分的子集合。例如一个带有博客功能的应用可能包含两个集合,分别是blog.posts和blog.authors。这样做的目的只是为了组织结构更好些,也就是说blog这个集合及其子集合没有任何关系。
3、基础-文档
文档是MongoDB的核心概念。多个键及其关联的值有序的放置在一起便是文档。
每种编程语言表示文档的方法不一样,但是大多数编程语言都有相通的一种数据结构,比如映射、散列或字典。
规范:
  1、键不能包含\0(空字符)。这个字符用来表示键的结尾
  2、.和$有特别的意义,只有在特定环境下才使用。
  3、以下划线"_"开头的键是保留的,虽然这个并不是严格的要求。
MongoDB不但区分类型,也区分大小写。
MongoDB的文档中不能有重复的键。
4、基础-RDBMS VS MongoDB对应表
SQL术语/概念    MongoDB术语/概念      解释/说明
database        database            数据库
table           collection           数据库表/集合
row             document             数据记录行/文档
column          field                数据属性/字段(域)
index           index                索引
table joins     Embedded Documents   表连接,MongoDB3.2提供了Join操作
primary key     primary key          主键,MongoDB默认自动将_id字段设置为主键,可以手动设置

MongoDB-安装

1、MongoDB-官网
官网:https://docs.mongodb.com/manual/introduction/
2、命令安装
sudo apt-get install -y mongodb-org

https://docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu/
3、源码安装
# 解压
tar -zxvf mongodb-linux-x86_64-ubuntu1604-3.4.0.tgz

# 移动到/usr/local/目录下
sudo mv -r mongodb-linux-x86_64-ubuntu1604-3.4.0/ /usr/local/mongodb

# 将可执行文件添加到PATH路径中
export PATH=/usr/local/mongodb/bin:$PATH

MongoDB-启动运行

1、服务端mongodb的启动
1-1、命令
查看帮助:mongod –help
启动:sudo service mongod start
停止:sudo service mongod stop
重启:sudo service mongod restart
查看是否启动成功:ps -ef|grep mongod
配置文件的位置:/etc/mongod.conf,
默认端⼝:27017
日志的位置:/var/log/mongodb/mongod.log
1-2、更新mongodb配置文件(mongod.conf)
// 详细记录输出
verbose = true

// 指定服务端口号,默认端口27017
port = 27017

// 指定MongoDB日志文件,注意是指定文件不是目录
logpath = /var/log/mongodb/logs/mongodb.log

// 使用追加的方式写日志
logappend = true

// 指定数据库路径
dbpath = /data/db/

// 设置每个数据库将被保存在一个单独的目录
directoryperdb = true

// 启用验证
auth = false

// 以守护进程的方式运行MongoDB,创建服务器进程
fork = true

// 安静输出
quiet = true
1-3、创建对应的db文件夹和log日志文件
创建对应的db文件夹和log日志文件
mkdir -p /data/db
1-4、服务端启动mongodb命令
sudo mongod --config /etc/mongod.conf &
2、客户端 mongo
1-1、命令
启动本地客户端:mongo
查看帮助:mongo –help
退出:exit或者ctrl+c

### MongoDB-数据查看软件(Robot3T)
![alt text](https://img2023.cnblogs.com/blog/683233/202502/683233-20250209113300856-1878544172.png)

posted on   cloud_wh  阅读(6055)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示