MongoDB简介

1、MongoDB概述

由C++语言编写,开源而且基于分布式文件存储;在高负载的情况下,通过添加更多节点保证服务器性能;旨在为WEB应用提供可扩展的高性能数据存储解决方案;以文档的形式存储数据,数据结构由键值对(key / value);
其文档类似 JSON 对象,字段值可以包含其他文档、数组以及文档数组。

2、MongoDB特性

 •  可扩展、高性能的下一代数据库;
 •  易部署、易使用、存储数据方便;
 •  面向文档(json格式)存储,易读、高效;  
 •  模式自由,支持动态查询、完全索引,无模式;  
 •  高效的数据存储,效率提高; 
 •  支持复制和故障恢复;
 •  以支持云级别的伸缩性,支持水平数据库集群,可动态添加额外服务器;

3、MongoDB的元素

MongoDB由库(database)、集合(collection)、文档对象(documen)三个层次组成,类似于传统关系型数据库由库(database)、表(table)、记录(record)三级层次构成。其中,文档类似于 json 的键值对,例如:{“name”:“tom”,“age”:23},而集合则是一组文档的集合,库则是一组集合的集合。

4、MongoDB支持语言

在这里插入图片描述

5、MongoDB的“ObjectId”

不同的机器都能用全局唯一的同种方法方便的生成它。ObjectId使用12字节的存储空间,其生成方式如下:

例:
4e931cb61e19edcd8800017f        
时间戳 机器ID PID 计数器        

注:
 •  时间戳可以保证秒级唯一;
 •  机器ID可以保证设计时考虑分布式,避免时钟同步;
 •  PID可以保证同一台服务器运行多个mongod实例时的唯一性;
 •  计数器可以保证同一秒内的唯一性;

6、MongoDB数据类型

数据类型举例
空值null
布尔ture & false
整数123
浮点12.3
字符串“hello world”
对象ID用 new ObjectId()来申明
日期用 new Date()来申明时间戳
数组[“apple”,”blanan”,”pear”]
内嵌文档{“username” : “jone”, “age”: 13, “contact” : {“home”:”123”,”moblie”:”456”}}
RegExp(正则表达式)/[a-z]/

7、MongoDB 与 TRDB 数据库基本概念比较

MongoDBTRDB比 较 说 明
库 DB库 DB都有库的概念,需要用命令建立库名。如根据不同项目建立两个库名,一个为 test 库,用于测试,一个为 goodsdb 库, 用于正式业务数据存储及操作
集合一个集合对应于一个表。 MongoDB 无须事先定义集合结构, TRDB 必须事先强制定义表结构
文档每个文档都有一个特殊的_id,_id值在文档所属集合中是唯一的, 默认由MongoDB 自己维护, 当然也可以由程序员编程指定。 一个“文档”类似 TRDB 的—“行”记录,“文档”要避免不同集合的关联关系( Join ) ,;而以“行”为基础的 TRDB 则强调关联关系
键值对字段值MongoDB“文档”的一个“键值对”类似 TRDB 里的一个“字段值”,不过“文档”里的“键值对”可以嵌入更复杂的数据结构
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值