zoukankan      html  css  js  c++  java
  • MongoDB基础教程系列第一篇 进入MongoDB世界

     返回目录

    1、什么是MongoDB

    MongoDB是跨平台的、一个基于分布式文件存储的数据库。由C++语言编写。用它创建的数据库具备性能高、可用性强、易于扩展等特点。MongoDB将数据存储为一个文档,数据结构由键值(key:value)对组成。MongoDB文档类似于 JSON 对象。字段值可以包含字符串、数字、数组、当然也可以是另一个文档。文档是可以嵌套的。

    2、概念

    在MongoDB中基本的概念是文档、集合、数据库,下表可以帮助更容易的理解MongoDB的概念:

    关系型数据库MongoDB
    数据库 数据库
    集合
    文档
    字段
    表 Join 内嵌文档
    主键 主键,MongoDB自动将_id字段设置为主键

    2.1、文档

    文档相当于关系型数据库中的行。它一组键值对,具有动态的模式,所以文档不需要设置相同的字段,并且相同的字段不需要相同的数据类型,这一点,跟关系型数据库有很大的不同。

    注:

    1. 文档中的键/值对是有序的。
    2. MongoDB区分类型和大小写。
    3. MongoDB的文档不能有重复的键。
    4. 键不能含有\0 (空字符)。
    5. .和$有特别的意义,只有在特定环境下才能使用。

    2.2、集合

    集合相当于关系型数据库中的表。集合就是一组MongoDB文档。集合存在于数据库中,集合没有固定的结构,这意味着可以对集合插入不同格式和类型的数据,但通常情况下我们插入集合的数据都会有一定的关联性。

    注:

    1. 集合名不能是空字符串""。
    2. 集合名不能含有\0字符(空字符),这个字符表示集合名的结尾。
    3. 集合名不能以"system."开头,这是为系统集合保留的前缀。
    4. 集合名用户创建的集合名字不能含有保留字符。有些驱动程序的确支持在集合名里面包含,这是因为某些系统生成的集合中包含该字符。除非你要访问这种系统创建的集合,否则千万不要在名字里出现$。

    2.3、数据库

    数据库是集合的实际容器。每一数据库都在文件系统中有自己的一组文件。一个 MongoDB 服务器通常有多个数据库。

    注:

    1. 不能是空字符串("")。
    2. 不得含有' '(空格)、.、$、/、\和\0 (空宇符)。
    3. 应全部小写。
    4. 最多64字节。

    2.4、范例

    下面这个范例展示了一个人的关系网的文档结构,它是由逗号分隔的键值对构成的

    {
       _id: ObjectId(7df78ad8902c)
       name: 'Liruihuan', 
       age: 18,
       blogs: 'http://www.cnblogs.com/liruihuan/',
       friends: [  
          {
             name:'user1',
             age: 18,
             friends: [...]
          },
          {
             name:'user2',
             age: 18,
             friends: [...]
          }
       ]
    }   
    

      注:_id 是一个 12 字节长的十六进制数,它保证了每一个文档的唯一性。在插入文档时,需要提供 _id。如果你不提供,那么 MongoDB 就会为每一文档提供一个唯一的 id。_id 的头 4 个字节代表的是当前的时间戳,接着的后 3 个字节表示的是机器 id 号,接着的 2 个字节表示 MongoDB 服务器进程 id,最后的 3 个字节代表递增值。

    3、使用MongoDB的优势

    • 模式较少:MongoDB 是一种文档数据库,一个集合可以包含各种不同的文档。每个文档的字段数、内容以及文档大小都可以各不相同。
    • 采用单个对象的模式,清晰简洁。
    • 没有复杂的连接功能。
    • 深度查询功能。MongoDB 支持对文档执行动态查询,使用的是一种不逊色于 SQL 语言的基于文档的查询语言。
    • 具有调优功能。
    • 易于扩展。MongoDB 非常易于扩展。
    • 不需要从应用对象到数据库对象的转换/映射。
    • 使用内部存储存储(窗口化)工作集,能够更快地访问数据。

    4、适用场景

    • 大数据
    • 内容管理及交付
    • 移动及社会化基础设施
    • 用户数据管理
    • 数据中心

    5、应用案例

    • Craiglist上使用MongoDB的存档数十亿条记录。
    • 纽约时报,领先的在线新闻门户网站之一,使用MongoDB。
    • CERN,著名的粒子物理研究所,欧洲核子研究中心大型强子对撞机的数据使用MongoDB。
    • FourSquare,基于位置的社交网站,在Amazon EC2的服务器上使用MongoDB分享数据。

    业精于勤,荒于嬉;行成于思,毁于随。

    如果你觉得这篇文章不错或者对你有所帮助,可以通过右侧【打赏】功能,给予博主一点点鼓励和支持

  • 相关阅读:
    DataAnnotations
    使用BizTalk实现RosettaNet B2B So Easy
    biztalk rosettanet 自定义 pip code
    Debatching(Splitting) XML Message in Orchestration using DefaultPipeline
    Modifying namespace in XML document programmatically
    IIS各个版本中你需要知道的那些事儿
    关于IHttpModule的相关知识总结
    开发设计的一些思想总结
    《ASP.NET SignalR系列》第五课 在MVC中使用SignalR
    《ASP.NET SignalR系列》第四课 SignalR自托管(不用IIS)
  • 原文地址:https://www.cnblogs.com/liruihuan/p/6658528.html
Copyright © 2011-2022 走看看