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分享数据。

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

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

  • 相关阅读:
    Microsoft .NET 框架资源基础(摘自msdn)
    cache的应用
    cache应用(asp.net 2.0 + sqlserver2005 数据依赖缓存 )
    c#遍历查找指定文件
    各浏览器目前对CSS3、HTML5的支持
    一步步构建大型网站架构
    c#连接sqlserver数据库
    C#中如何判断一个字符是汉字
    c#执行DOC命令
    VS2010快捷键
  • 原文地址:https://www.cnblogs.com/liruihuan/p/6658528.html
Copyright © 2011-2022 走看看