MongoDBm基本概念的分析

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值