Mongodb基础知识笔记

原文地址

MongoDB介绍

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

MongoDB优点

MongoDB优点

MongoDB使用场景

  • 数据缓存

    由于性能很高,MongoDB适合作为信息基础设施的缓存层。在系统重启之后,由MongoDB搭建的持久化缓存层可以避免下层的数据源过载。

  • 对象和json存储

    MongoDB的BSON(二进制JSON)数据格式非常适合文档化格式的存储及查询,而且JSON格式存储最接近真实对象模型,对开发者友好,方便快速开发迭代,灵活的模式让你不在为了不断变化的需求而去频繁修改数据库字段和结构。

  • 高伸缩性场景

    MongoDB通过分片集群,使MongoDB服务能力易于水平扩展。

  • 弱事务类型业务

    MongoDB不支持多文档事务,所以像银行系统这种需要大量原子性复杂事务的程序不适合使用MongoDB。(注:MongoDB 4.0将支持跨文档的事务)

MongoDB版本特性介绍

MongoDB概念

通过和关系型数据库mysql的对照,让我们更容易的理解MongoDB的一些概念

关系型数据库(sql)概念 MongoDB概念 说明
database database 数据库
table collection 数据库表/集合
row document 数据行/文档
column filed 数据字段/域
index index 索引

MongoDB数据关系图

数据库
  • 一个MongoDB中可以建立多个数据库。

  • MongoDB的默认数据库为"db",该数据库存储在data目录中

集合
  • 集合名不能以"system."开头

  • 关系型数据库中的表(table)中的每一条数据(row)的格式是事先约定好的的,而MongoDB中的集合(collection)中文档(document)的数据格式是不固定的,也就是说我们可以将如下数据插入统一文档中。

{
   "site":"www.wuhuan.me"}
{
   "site":"www.baidu.com","name":"百度"}
文档
  • 文档中的值不仅可以是在双引号里面的字符串,还可以是其他几种数据类型(甚至可以是整个嵌入的文档)

例如:在关系型数据库中有一张students表和course表,表的结构和数据如下:

students表

id name sex age
1 李雷 0 12
2 韩梅梅 1 12

course表

id course_id course_name score user_id
1 1 语文 99 1
2 2 数学 100 1
3 1 语文 96 2
4 2 数学 98 3

以上数据和结构在MongoDB中可以使用内嵌文档来表示(一对多)的关系:

{
   
  "_id":ObjectId("5349b4ddd2781d08c09890f3"),
  "name":"李雷",
  "sex":"0",
  "age":"12",
  "course":[{
   
    "course_id":1,
    "course_name":"语文",
    "score":99,
  },{
   
    "course_id":2,
    "course_name":"数学",
    "score":100,
  }]
}
{
   
  "_id":ObjectId("5349b4ddd2781d08c09890f4"),
  "name":"韩梅梅",
  "sex":"1",
  "age":"12",
  "course":[{
   
    "course_id":1,
    "course_name":"语文",
    "score":96,
  },{
   
    "course_id":2,
    "course_name":"数学",
    "score":98,
  }]
}
  • 文档中的键/值对是有序的,文档中的键是不能重复,且区分大小写。
数据类型
数据类型 描述
String 字符串。存储数据常用的数据类型。在 MongoDB 中࿰
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值