• (2) MongoDB基本概念及与关系型数据库的对照


    MongoDB不是关系型数据库,因此也就没有了表,行等概念,但是有一些类似的概念,主要有 数据库(Database),集合(Collection),文档(Document),其中数据库跟关系型数据库的数据库是一个概念,集合相当于表,文档相当于行。下面分别来介绍这些概念。

    1. 文档:

    文档是MongoDB的核心概念,也是MongoDB种数据的基本单元。所谓文档就是多个键及其关联的值有序的放置在一起。如,

    {"greeting":"Hello World!"}

    在这个文档中,"greeting"是键,"Hello World!"是值

    当然,绝大多数的文档包含多个键/值,比这个要复杂的多,如:

    {"author":"Tian","Sex":"M","hobby":"MBK"}

    甚至文档里面还包含文档。

    1.1 文档的键的命名规则

    1). 文档的键是字符串;

    2). 键不能包含有\0(空字符),这个字符用来表示键的结尾;

    3). $和.有特殊的含义,被保留了;

    4). 以下划线"_"的键被保留了,虽然这个并不是严格的要求。

    5). 文档的键不能重复

    6). 区分大小写,如{"author":"tian"}和{"Author":"tian"}是不一样的

    2. 集合

    集合,指的是一组文档。

    MongoDB的集合虽然类似于关系数据库的表,但是,集合是无模式的,不必像关系数据库的表那样,必须事先定义,并且结构固定。

    我们可以将以下2个文档存到同一个集合中:

    {"author":"tian"}

    {"age":6}

    这两个文档,键不一样,对应的值也不一样,甚至类型也不一样,而这在关系数据库中是不可想象的。

    2.1 集合的命名

    1). 集合名不能是空字符串""

    2). 集合名不能含有\0(空字符),这个字符是集合名的结尾

    3). 集合名不能以"system."开头,以"system."开头表示系统集合,如system.users这个集合保留数据库用户的信息,system.namespaces这个集合保存数据库所有集合的信息

    4). 用户创建的集合名字不能含有保留字符$

    2.2 子集合

    我们可以通过"."字符分开的按命名空间划分的子集合来组织集合。如,一个带有博客功能的应用可能包含2个集合blog.authors和blog.posts,这样做的目的只是为了组织更好,事实上, 我们不一定存在blog这个集合的。

    3. 数据库

    多个集合组成数据库。一个MongoDB实例可以包含多个数据库,他们之间可以视为完全独立。

    3.1 数据库命名

    1). 不能是空字符串;

    2). 不能含有空格、.、$、/、\、和\0;

    3). 应全部小写;

    4). 最多64字节;

    5). 不能是保留的数据库名:admin,local,config

    参考:MongoDB权威指南

  • 相关阅读:
    javaWeb学习笔记之关于重定向和请求转发的区别
    javaWeb学习笔记之关于Servlet文件下载
    javaWeb学习笔记之关于http
    javaWeb学习笔记之关于tomcat
    小程序订阅消息推送
    Oracle数据库序列的相关问题
    将本地项目push到gitlab仓库中
    面试之BI-SQL--table转换[2]
    面试之BI-SQL--table转换
    面试之C#--垃圾回收器什么时候回收?
  • 原文地址:https://www.cnblogs.com/tian2010/p/2596459.html
Copyright © 2020-2023  润新知