mongodb 基本介绍 安装和基本操作,最基础版本

一、MongoDB 介绍

1、MongoDB概述

MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。

MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。

它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。

MongoDB服务端可运行在Linux、Windows平台,支持32位和64位应用,默认端口为27017。

推荐运行在64位平台,因为MongoDB在32位模式运行时支持的最大文件尺寸为2GB。

  1.  MongoDB的特点和优势

1)灵活的数据模型:MongoDB不需要事先定义表格结构,可以存储各种类型的数据,支持嵌入式文档和引用两种数据关联方式。

2)强大的查询语言:MongoDB提供丰富的查询操作符和聚合管道功能,支持复杂的查询和分析需求。

3)高性能的数据读写:MongoDB使用内存映射文件和预分配空间等技术优化数据读写性能,支持快速的插入、更新和查询操作。

4)可扩展的存储和计算能力:MongoDB支持水平扩展和自动分片,可以方便地增加服务器和处理大规模数据。

5)丰富的工具和生态系统:MongoDB提供了命令行工具和图形界面管理工具,还有众多的第三方库和框架支持。

  1. MongoDB与传统数据库的对比

SQL术语/概念

MongoDB术语/概念

解释说明

database

database

数据库

table

collection

数据库表\集合

row

document

行\文档

colum

field

数据字段\域

index

index

索引

table joins

表连接\MongoDB没有表连接

primary key

primary key

主键\MongoDB自动将_id字段设置主键

  1. MongoDB 主要特点
4.1、文档

MongoDB中的记录是一个文档,它是由字段和值对组成的数据结构。
多个键及其关联的值有序地放在一起就构成了文档。
MongoDB文档类似于JSON对象。字段的值可以包括其他文档,数组和文档数组。

{“greeting”:“hello,world”}这个文档只有一个键“greeting”,对应的值为“hello,world”。多数情况下,文档比这个更复杂,它包含多个键/值对。

例如:{“greeting”:“hello,world”,“foo”: 3} 文档中的键/值对是有序的,下面的文档与上面的文档是完全不同的两个文档。{“foo”: 3 ,“greeting”:“hello,world”}

文档中的值不仅可以是双引号中的字符串,也可以是其他的数据类型,例如,整型、布尔型等,也可以是另外一个文档,即文档可以嵌套。文档中的键类型只能是字符串。

使用文档的优点是:

  1. 文档(即对象)对应于许多编程语言中的本机数据类型
  2. 嵌入式文档和数组减少了对昂贵连接的需求
  3. 动态模式支持流畅的多态性

4.2、集合

集合就是一组文档,类似于关系数据库中的表。

集合是无模式的,集合中的文档可以是各式各样的。例如,{“hello,word”:“Mike”}和{“foo”: 3},它们的键不同,值的类型也不同,但是它们可以存放在同一个集合中,也就是不同模式的文档都可以放在同一个集合中。

既然集合中可以存放任何类型的文档,那么为什么还需要使用多个集合?

这是因为所有文档都放在同一个集合中,无论对于开发者还是管理员,都很难对集合进行管理,而且这种情形下,对集合的查询等操作效率都不高。所以在实际使用中,往往将文档分类存放在不同的集合中。

例如,对于网站的日志记录,可以根据日志的级别进行存储,Info级别日志存放在Info 集合中,Debug 级别日志存放在Debug 集合中,这样既方便了管理,也提供了查询性能。

但是需要注意的是,这种对文档进行划分来分别存储并不是MongoDB 的强制要求,用户可以灵活选择。

可以使用“.”按照命名空间将集合划分为子集合。

例如,对于一个博客系统,可能包括blog.user 和blog.article 两个子集合,这样划分只是让组织结构更好一些,blog 集合和blog.user、blog.article 没有任何关系。虽然子集合没有任何特殊的地方,但是使用子集合组织数据结构清晰,这也是MongoDB 推荐的方法。

4.3、数据库

MongoDB 中多个文档组成集合,多个集合组成数据库。

一个MongoDB 实例可以承载多个数据库。它们之间可以看作相互独立,每个数据库都有独立的权限控制。在磁盘上,不同的数据库存放在不同的文件中。

MongoDB 中存在以下系统数据库。

Admin 数据库:一个权限数据库,如果创建用户的时候将该用户添加到admin 数据库中,那么该用户就自动继承了所有数据库的权限。

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

Config 数据库:当MongoDB 使用分片模式时,config 数据库在内部使用,用于保存分片的信息。

4.4、数据模型

一个MongoDB 实例可以包含一组数据库,一个DataBase 可以包含一组Collection(集合),一个集合可以包含一组Document(文档)。

一个Document包含一组field(字段),每一个字段都是一个key/value pair

  1. key: 必须为字符串类型
  2. value:可以包含如下类型
  1. 基本类型,例如,string,int,float,timestamp,binary 等类型
  2. 一个document
  3. 数组类型

二、Linux安装MongoDB

1、下载MongoDB安装包

[root@ligc_31 ~]# wget  https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.2.1.tgz

2、解压安装
2.1、解压

[root@ligc_31 ~]# tar -zxvf mongodb-linux-x86_64-rhel70-4.2.1.tgz -C /one

2.2、创建 MongoDB 必要目录

[root@ligc_31 ~]# mkdir -p /usr/local/mongodb/{data,logs} #日志文件目录 和数据文件存放目录

[root@ligc_31~]# touch  /usr/local/mongodb/logs/mongodb.log #日志文件mongodb.log

3、 配置path环境变量,确保mongodb的bin目录包含在path环境变量中。

[root@ligc_31 ~]# vim /etc/profile

找到export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL,在这行上面添加以下内容:

#set for mongodbexport

export MONGODB_HOME=/opt/mongodbexport

export PATH=$MONGODB_HOME/bin:$PATH

保存退出

输入 重新加载变量

[root@ligc_31 ~]# source /etc/profile

[root@ligc_31 ~]# echo $PATH

4、移动 MongoDB 安装目录/usr/local/mongo目录下,创建目录

[root@ligc_31 one]# mv mongodb-linux-x86_64-rhel70-4.2.1/*  /usr/local/mongodb

5、添加 MongoDB 配置文件

[root@ligc_31 ~]# vim /etc/mongodb.conf

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值