MongdDB 数据库 (非关系型数据库 文档型 数据库)mongodb数据库常用命令

MongoDB(芒果数据库)

数据存储阶段

文件管理阶段(.txt   .doc   .xls)

数据库管理阶段

文件管理阶段

(.txt .doc .xls)

 

优点

1、使用简单方便

2、数据能够长期保存

3、可以存储大量数据

 

缺点

1、数据一致性差

2、数据的查找修改不方便

3、数据冗余(大量重复的数据)

数据库管理阶段

 

优点

1、数据组织结构化,降低冗余

2、提高增删改查效率

3、方便扩展

4、方便程序调用,做自动化的处理

缺点

1、数据库使用特定的语句操作,相对复杂

数据

能够输入到计算机中并被识别处理的信息的集合

数据结构

研究一个数据集合中,数据之间关系的学科

数据库

按照数据结构存储数据的仓库。

在数据库管理系统管理下一定介质上的数据集合。

数据库管理系统

管理数据库的软件,用于建立维护数据库

数据库系统

由数据库的数据库管理系统等开发工具组成的集合

 

 

 

!关系数据库

采用关系模型来组织数据结构的数据库(二维表)

比如:oracle(甲骨文)  DB2  SQLServer(微软) Mysql   sqlite(嵌入式)

优点

  1. 容易理解,逻辑类似常见的表格
  2. 使用方便,都使用sql语句很成熟
  3. 数据一致性高,冗余低,完整性好

4、技术成熟,可以使用外部关联复杂操作

缺点

1、 每次都需要sql语句的解析,消耗大

2、 不能很好的满足并发需求,特别是海量数据爆发,读写能力不足

3、 关系型数据库每一步都要加锁,

以保证操作的原子性,增加了数据库负担

4、 数据的一致性有时会导致空间浪费

 

 

!非关系数据库

(Nosql ----à   not noly sql)

优点

  1. 高并发,读写能力强
  2. 普遍比关系型数据库容易扩展
  3. 弱化了数据结构,降低数据的一致性

 

缺点

  1. 通用性差,没有sql语句一样的一致化操作
  2. 操作过于冗长,容易混乱
  3. 没有join等复杂操作,很多也不支持事务等操作

 

Nosql使用情况

  1. 对数据一致性要求低
  2. 数据库需要处理海量并发
  3. 需要处理速度较快,比如做一个临时的中间过度存储器
  4. 数据库构建比较方便的构建非关系模型

 

Nosql分类

1、键值型数据库:Redis

2、列存储数据库

3、文档型数据库:MongDB

4、图形数据库

 

 

MongoDB 数据库 (非关系型数据库 à 文档型 数据库)

 

 

特点

1、由c++ 编写的数据库管理系统

2、支持丰富的增删改查操作

3、支持丰富的数据类型

4、支持众多的编程语言接口(python  PHP  c++  c# )

5、使用方便,便于部署,相对成熟

 

 

 

 

 

 

 

 

 

MongoDB安装

自动安装

sudo apt-get install mongodb

默认安装位置

/var/lib/mongodb

配置文件

  /etc/mongodb.conf

命令集(软件安装后提供功能性的命令)

/usr/bin  或者  /usr/local/bin

 

手动安装

  1. 下载Mongodb(开源)

www.mongdb.com  --- >  get mongodb  --- > community server

选择想要下载的版本

  1. 选择合适的位置解压(/use/local  /opt)

tar 解压后得到 MongoDB 文件夹

  1. 将命令集(解压后文件夹中bin目录) 添加到环境变量

PATH=$PATH:/opt/mongo/bin

export PATH

将以上两句添加 /etc/rc.local

4、重启系统

 

 

MongoDB命令

 

设置数据库存储位置

mongod  --  dbopath 目录

e.g. mongodb dboath dbs

 

设置数据库端口

mongod  --port  8080

*默认端口  27017

进入mondo shell 界面:

mongodb的交互界面,操作数据库

mongod

退出界面

quit() 或 ctrl + c

mongodb 数据库组织形式

键值对 – > 文档 -- > 集合 -- > 数据库

-----------------------------------------

ID  |  NAME  |   AGE  |

-----------------------------------------

1  |     lily   |   17   |

----------------------------------------

2  |    Lucy  |   20    |

----------------------------------------

{“_id”:1,

“NAME”:” lily”,

“AGE”:17

}

{“_id”:2,

“NAME”:” Lucy ”,

“AGE”:20

}

 

 

 

Mysql 和mongodb概念对比

mysql

mongodb

含义

 

database

 

database

 

数据库

 

table

 

table

 

表/集合

 

column

 

field

 

字段/域

 

row

 

document

 

记录/文档

 

Index

 

Index

 

索引

 

 

 

 

 

 

 

 

 

 

 

mongodb数据库常用命令

 

 

 

数据库的创建

use databaseName

例子:

e.g.   use stu  

#创建一个stu数据库

 

  1. use 实际上是表示选择某个数据库使用。

当这个数据库不存在时会自动创建

  1.  使用use后数据不会马上被创建,

而是在实际写入数据时才会创建

查看当前系统中数据库

show dbs

 

 

系统数据库

存放用户及其权限

admin

存储本地数据

local

存储分片信息

config

 

 

数据库的命名规则

  1. 使用utf-8字符
  2. 不能有空格、点、/、\、‘\0’字符
  3. 长度不能超过64字节
  4. 不和系统数据库重名

 

 

db

mongodb系统全局变量,代表当前使用的数据库

 

  1. 如果没有使用任何数据库情况下 db表示test。

此时插入数据则创建test数据库

 

 

 

 

 

数据库的备份和恢复

备份 : mongodb  -h  dbhost –d  dbname  –o  dbdir

                       主机    要备份数据库  目录

 

例子:

将stu数据库备份到sthdent目录中

mongodump -h 127.0.0.1 -d stu -o sthdent

 

恢复:mongorestore  -h  dbhost:port –d  dbname  path

                        主机          数据库  目录

 

例子:

将stu 数据库恢复到sthdent 数据库中

mongorestore -h 127.0.0.1:27017 -d sthdent sthdent/stu

 

 

 

 

 

 数据库监测

 

 

mongostat

insert  query  update  delete  :每秒执行增删改查次数

command :每秒运行命令此时

flushes : 每秒清理缓存次数

vsize:使用的虚拟内存

res: 物理内存

 

 

监测每个数据的读写时长

mongotop

ns  :数据集合

total :总时长

read :读时长

write :写时长

 

删除数据库

删除db代表的数据库

db.dropDatbase()

 

 

 

 

 

 

 

创建集合

方法1

db.createCollection(collection_name)

 

例子:

创建一个class1的集合

db.createCollection("class1")

方法2

当向一个集合中插入数据的时候,如果这个集合不存在则会自动创建

db.collecinoName.insert(…)

 

例子:

如果class2不存在则自动创建

db.class2.insert({"name":'Tom','age':17,'sex':'m'})

查看数据库中的集合

show collections

show tables

 

 

集合命名规则

  1. utf-8 字符
  2. 不能有‘\0’
  3. 不要以system.开头,因为这是系统保留集合前缀
  4. 不要和关键字重复

删除集合

db.collectionName.drop()

 

例子:

删除class

db.class.drop()

 

集合的重命名

db.collenctonName.renameCollection(“new_name”)

 

例子

db.class2.renameCollection("class0")

文档

Mongodb中数据的组织形式 --  > 文档

Mongodb文件

以键值对形式组成的类似字典的数据描述形式

  1. 键:即文档的域

 

 

键的命名规则

  1. utf-8 字符串
  2. 不含有‘\0’通常不用 . $
  3. 一个文档当中的键不能重复
  1. 文档中的键值对是有序的
  2. mongodb中数据严格区分大小写

 

 

 

 

 

 

 

 

 

 

 

 

 

即文档存储的数据    支持bson 数据

JavaScript ----- > 编程语言 前端

 |

json 前端和后端的传输格式

 |

bson

 

类型                

整型                   整数

    布尔类型                true  false

浮点型                    小数

Array                      数组

Timestamp                 时间戳

Date                      时间日期

Object                    内部文档

Null                      空值 null

String                    字符串

Symbol                   特殊字符串

Binary  data             二进制字符

code                    代码

regex                    正则表达式

objeId                    objeId 子串

 

  1. objeId   

{ "_id" : ObjectId("5b504b6f25a94135d37fdf6c")

_id : 当在mongo 代表中插入文档时,如果不指定_id则会自动添加这个域,作为键。

 

ObjectID 值是系统自动生成的不重复子串标识

 

24位    前8位   文档创建时间

         6位     机器ID        

         4位     进程ID        

         6位     计数器

集合中的文档

  1. 集合中的文档不一定有相同的域
  2. 集合中的文档多少不一定相同
  3. 集合中的文档,值的类型不一定相同

 

 

集合设计

 

  1. 集合中的文档尽可能描述同一类数据
  2. 同一类数据不要过多分散在多个集合中存放
  3. 集合中文档的结构层次不易过多
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值