zoukankan      html  css  js  c++  java
  • mongoldb学习之初识mongoldb

          我只是知识的搬运工。

      作为一个android开发工程师,初入职,公司没有什么关于android的任务,反而交给我一个XX管理系统的开发任务,java后端。

      大三学习的Java web,我基本都还给老师了,现在要一点点捡起来,所幸java还是熟悉的。唔,初次接触了os 系统,在操作系统不熟,语言不熟的情况下,向朋友求助,安装了intellij idea,gradle,mongodb,安装的时候我啥都不懂,就按照步骤安装上了,照朋友的说法,这个组合开发起来比较简单,然额,把我带进了一个大坑。必须使用的几个工具包,突然不能用了.....真的要疯了,朋友也挺不好意思,算了,按照原生的来吧。

          于是又安装了tomcat,写了个hello world,服务器测试成功。

          数据库已经安装了mongodb,就没有再安装mysql。

          接下来的时间,开始学习。

      本文主要是一些概念。

      MongoDB 是一款跨平台、面向文档的数据库。用它创建的数据库可以实现高性能、高可用性,并且能够轻松扩展。

      MongoDB 的运行方式主要基于两个概念:集合(collection)与文档(document)。 

    文档

      文档是MongoDB的核心概念,多个键及其关联的值有序的放置在一起就是文档。下面是几个关于文档的十分重要的概念:

    • 文档中的键值对是有序的。
    • 文档的值不仅可以是在双引号里面的字符串,还可以是其他几种数据类型。
    • 文档的键是字符串,除了少数例外情况外,键可以使用任意UTF-8字符:
      • 键不能含有/0(空字符)。这个字符用来表示键的结尾。
      • .和$有特别的意义,只有在特殊环境下才能使用。
      • 以“_”开头的键是保留的。
    • 文档中不能有重复的键

    集合

      集合就是一组文档,如果说文档相当于关系数据库中的行,那么集合就相当于其中的表。

      以下是关于集合的几个重要概念。

    • 集合是无模式的。一个集合中的文档是多种多样的。
    • 集合的命名规则如下:
      • 集合名不能是空字符串“”。
      • 集合名不能含有空字符“”,它代表集合名的结尾;
      • 集合名不能以“system.”开头,这是为系统集合保留的前缀。
      • 用户创建集合名字不能包含$字符。
    • 集合的子集合。

          可使用子集合来组织数据。

    数据库

       在MongoDB中,多个文档组成集合,多个集合组成数据库。

       数据库命名规则:

    • 集合名不能是空字符串“”。
    • 集合名不能含有空字符“”,“.”,"$"," "(空格),“”。
    • 应全部小写。
    • 最多64字节。

    数据库最终会变成文件系统中的文件。

    与关系数据库相比

    1、MongoDB 相比 RDBMS 的优势

    • 模式较少:MongoDB 是一种文档数据库,一个集合可以包含各种不同的文档。每个文档的字段数、内容以 及文档大小都可以各不相同。

    • 采用单个对象的模式,清晰简洁。

    • 没有复杂的连接功能。

    • 深度查询功能。MongoDB 支持对文档执行动态查询,使用的是一种不逊色于 SQL 语言的基于文档的查询 语言。

    • 具有调优功能。

    • 易于扩展。MongoDB 非常易于扩展。

    • 不需要从应用对象到数据库对象的转换/映射。

    • 使用内部存储存储(窗口化)工作集,能够更快地访问数据。

    2、为何选择使用 MongoDB

    • 面向文档的存储:以 JSON 格式的文档保存数据。

    • 任何属性都可以建立索引。

    • 复制以及高可扩展性。

    • 自动分片。

    • 丰富的查询功能。

    • 快速的即时更新。

    • 来自 MongoDB 的专业支持。

    3、MongoDB 适用的领域

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

     

  • 相关阅读:
    Linux 修改最大线程数
    Openresty+Nginx+Lua+Nginx_http_upstream_check_module 搭建
    SSDB 性能测试
    面向对象:类的成员
    封装,多态,类的约束,super()深入了解
    面向对象:继承
    面向对象:类的空间问题,类之间关系
    面向对象初识
    软件开发规范
    模块(四)包和logging日志
  • 原文地址:https://www.cnblogs.com/mafangfang/p/5691886.html
Copyright © 2011-2022 走看看