MongoDBm基本概念的分析

原创 2015年11月19日 19:11:40

1. mongodb 基本概念

  mongo基本的概念包括数据库、文档、集合。以下分别予以介绍。

1.1 数据库

  一个mongodb可以建立多个数据库,每一个都有自己独立的目录和权限,不同的数据库放在不同的文件中。使用”show dbs”可以显示所有的数据库列表。

>mongo
MongoDB shell version: 3.0.7
connecting to: test
>
> show dbs
local 0.078GB
test 0.078GB
>

  执行”db”可以显示当前正在使用的数据库。

> db
test
>

  “use”可以连接到指定数据库。

>use local
switched to db local
>
>


注意
数据库命名要符合以下条件:

  • 不能是空串
  • 不能含有’ ‘, ., $, \/等特殊字符串
  • 全部小写
  • 最多64字节

1.2 文档

  文档是mongodb中的最核心的概念,我们可以把它当做关系型数据库的一行的概念。多个键和它关联的值合在一起就是文档。MongoDB使用BSON结构来储存和交换数据(BSON可以理解为在JSON基础上添加了以下json不支持的数据类型),通常object就是指的文档,下面是一个文档的例子:

{site:”jeanphorn.github.io”}

  需要留意的地方:

  • 文档的键/值是有序的
  • 文档的值除了字符串,还可以是其他类型的数据结构(set,嵌套)
  • MongoDB区分类型和大小写
  • MongoDB不允许有重复的键

1.3 集合

  集合是一组文档的组合,如果把文档比作mysql中的行,那么集合就是mysql中的表。在MongoDB中集合是无模式的,存入集合的文档可以是不同的结构,例如下面的两个文档是可以存入同一个集合的。

{name: “jeanphorn”}
{name: “jeanphorn”, university: “cuc”}

  当第一个文档插入时,集合就被创建了。

>
>db.jeanphorn.insert({name: “jeanphorn”})
WriteResult({ “nInserted” : 1 })
>db.jeanphorn.insert({name: “jeanphorn”, university: “cuc”})
WriteResult({ “nInserted” : 1 })
>
>db.jeanphorn.find()
{ “_id” : ObjectId(“564da531f114824ae7b8138a”), “name” : “jeanphorn” }
{ “_id” : ObjectId(“564da54df114824ae7b8138b”), “name” : “jeanphorn”, “university” : “cuc” }
>

1.4 元数据

  数据库的信息存储在集合中,使用系统的命名空间”dbname.sytem.*”。

集合命名空间 描述
dbname.system.namespaces 列出所有命名空间
dbname.system.index 索引
dbname.system.profile 数据库概要信息
dbname.system.users 列出可访问数据库的用户
dbname.system.sources 包含slave服务器信息状态

1.5 数据类型

  下表是对MongoDB数据类型的相关描述。

集合命名空间 描述
String 在 MongoDB 中,UTF-8 编码的字符串才是合法的。
Integer 整型数值。根据服务器,可分为 32 位或 64 位。
Boolean 布尔值
Double 双精度值
Min/Max keys 将一个值与 BSON(二进制的 JSON)元素的最低值和最高值相对比。
Arrays 用于将数组或列表或多个值存储为一个键。
Timestamp 时间戳。记录文档修改或添加的具体时间。
Object 用于内嵌文档。
Null 用于创建空值
Symbol 符号。该数据类型基本上等同于字符串类型
Date 日期时间。用 UNIX 时间格式来存储当前日期或时间。
Object ID 对象 ID。用于创建文档的 ID
Binary Data 二进制数据。
Code 代码类型。用于在文档中存储 JavaScript 代码。
Regular expression 正则表达式类型。用于存储正则表达式。

2. 例子

  这里引用runoob网上的一个例子可以更形象的理解MongoDB。

showMongo

Servlet基本概念

Servlet概述 生命周期方法: l  void init(ServletConfig):出生之后(1次); l  void service(ServletRequest request,Se...
  • dzy21
  • dzy21
  • 2016年07月01日 13:17
  • 434

一般系统论的基本概念

系统概念 在引入系统概念之前,我们先从系统中的元素说起。元素之间有三种区别:1.元素的个数 2.元素的状态 3.元素之间的关系。这三者可以非常有效的定位系统中的某种元素。元素个数作为显著特征可以考察物...
  • seacean2000
  • seacean2000
  • 2017年12月03日 22:44
  • 68

Flash基本概念和原理

From: http://www.flashkj.com/wap.asp?act=View&id=66 一、时间轴线(Timeline) 时间轴线是动画和视频类软件中的一个重要概念。它...
  • JoeBlackzqq
  • JoeBlackzqq
  • 2013年02月26日 22:59
  • 1126

博弈论基本概念

博弈论(维基百科) http://zh.wikipedia.org/wiki/%E5%8D%9A%E5%BC%88%E8%AE%BA  具有竞争或对抗性质的行为称为博弈行为。在这类行为中,参加斗争或竞...
  • u012176591
  • u012176591
  • 2015年01月25日 09:59
  • 964

数理统计学基本概念

1. 统计量1.1 样本均值统计量 X¯¯¯=1n∑ni=1Xi=1n(X1+X2+...+Xn)\overline{X}=\frac{1}{n}\sum_{i=1}^{n}X_i = \frac{1...
  • DawnRanger
  • DawnRanger
  • 2016年10月27日 22:44
  • 857

计算机基本概念

计算机基本概念 一、计算机系统         xxx 二、操作系统         xxx 三、计算机网络         计算机网络的组成包括硬件和软件。其中硬件主要包含主机、网卡、路由器...
  • awangqm
  • awangqm
  • 2016年04月06日 19:39
  • 1577

HDFS的基本概念(一)

数据存入HDFS中时需要对其进行分片(split)、压缩等操作。HDFS使用Block(存储块)对文件的存储进行操作,Block是HDFS的基本存储单元,默认大小是64MB(Block较大的优点:可以...
  • GnahzNib
  • GnahzNib
  • 2015年09月23日 08:35
  • 491

JAVA一些基础概念

Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表...
  • zheng__jun
  • zheng__jun
  • 2016年08月22日 21:43
  • 5994

四、总线的基本概念

1.   计算机部件的连接方式的演变:        i.   分散连接方式:             *1. 即各部件之间使用单独的连线;             *2. 早期:以运算器为中心的分散...
  • u011767511
  • u011767511
  • 2013年09月10日 20:48
  • 849

内存管理的基本概念及范围

为什么要内存管理 因为内存有限,要确保应用流畅的运行需要提供合理的空间并且要合理的释放空间 一个app应用当内存达到  20M  系统会向该app发送警告  45M  系统会再次向该app发送...
  • q1989424
  • q1989424
  • 2015年11月08日 21:23
  • 512
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:MongoDBm基本概念的分析
举报原因:
原因补充:

(最多只允许输入30个字)