知识库 : MongoDB 基础篇

Edit Document

MongoDB 介绍

基础篇

一:简介

MongoDB 是一个高性能,开源,无模式的文档型数据库,是当前 NoSQL 数据库产品中最热

门的一种。它在许多场景下可用于替代传统的关系型数据库或键 / 值存储方式, MongoDB 使

C++ 开发。 MongoDB 的官方网站地址是: http://www.mongodb.org/

 

二:安装、配置、启动

1.windows 安装。

下载安装包 https://www.mongodb.org/downloads

双击安装,一步一步来就可以了。这里不说明。

 

三:概念

1. 文档

mongoDB 的基本单位,相当于关系数据库中的行。它是一组有序的 key/value 键值对,

使用 json 格式,如: {"foo"   : 3,   "greeting"   :   "Hello, world!"}

注意以下几点

         不能包含 \0 字符 ,用于标志 key 的技术

         . $ 字符在 mangodb 中有特殊含义,如 $ 被用于修饰符 ($inc 表示更新修饰符 ) ,应该考虑保留,以免被驱动解析

         _ 开始的 key 也应该保留,比如 _id mangodb 中的关键字

         mangodb key 是不能重复的

         mangodb 是类型和大小写敏感的,如 {"foo" : 3} {"foo" : "3"} 是两个不同的 document {"foo" : 3} {"Foo" : 3} 类似

 

2. 集合

相当于关系数据库的表,不过没有数据结构的定义。它有多个 document 组成。

因为是无结构定义的,所以你可以把任何 document 存入一个 collection 里。每个

collection 用一个名字标识,需要注意以下几点:

         名字不允许是空字符串 ""

         名字不能包含 \0 字符,因为它表示名字的结束

         不能创建以 system. 开头的

 

3. 数据库

一个 mongoDB 的实例可以运行多个 database database 之间是完全独立的,每个 database 有自己的权限,每个 database 存储于磁盘的不同文件。

collections name 一样, databases name 可以是任意的 UTF-8 字符串。但是有以下限制:

         空字符串 ”” 是非法的

         不允许出现 ’’,.,$,/,\,\0 字符

         建议名称都是小写

         不能超过 64 个字节

         保留的名字不能用在 databases name ,比如 local

 

四: MongoDB Shell

MongoDB Shell MongoDB 自带的交互式 Javascript shell ,用来对 MongoDB 进行操作和管理

的交互式环境。

如:使用 "mongo d --help" 可查看相关连接参数

下面简单介绍常用的 shell 操作,这里以 windows 下的操作为例:

1. 启动数据库

mongod --dbpath E:\MongoDB\standalone\data\db

mongod 的重要参数

-- dbpath:

数据文件存放路径,每个数据库会在其中创建一个子目录,用于防止同一个实例多次运

行的 mongod.lock 也保存在此目录中。

--port

指定端口

-- logpath

错误日志文件

-- logappend

错误日志采用追加模式(默认是覆写模式

还有一些其他参数,利用 mongod --help 查询

 

2. 停止数据库

1. Control+C

2. db.shutdownServer()

3. linux 下直接 kill 掉响应的 pid

  ps -ef|grep mongod 来查找 pid

  kill -2 查找到的 pid  ( 最好不要 kill -9, 可能导致 mongodb 数据损坏 )

 

3. 连接数据库

前提最好将 bin 目录加入到 path

默认连接本地 host:27017

若连接非本地:  mongo host:port

  4 、查询本地所有数据库名称          

> show dbs;

  5 、切换至指定数据库环境(若无指定的数据库,则创建新的库)

> use mydb;

6 、查询当前库下的所有聚集集合 collection (相当于 table

> show collections;

7 、创建聚集集合

> db.createCollection('mycollection');

五:数据类型

MongoDB 的文件存储格式为 BSON, JSON 一样支持往其它文档对象和数组中再插入文档对象和数组,同时扩展了 JSON 的数据类型 . 与数据库打交道的那些应用。例如, JSON 没有日期类型,这会使得处理本来简单的日期问题变得非常繁琐。只有一种数字类型,没法区分浮点数和整数,更不能区分 32 位和 64 位数字。也没有办法表示其他常用类型,如正则表达式或函数。

下面是 MongoDB 的支持的数据类型:

         null       null 用于表示空值或者不存在的字段。 {"x":null}

         布尔     布尔类型有两个值 'true' 'false1'. {"X":true}

         32 位整数     类型不可用。 JavaScript 仅支持 64 位浮点数,所以 32 位整数会被自动转换。

         64 位整数     不支持这个类型。 shell 会使用一个特殊的内嵌文档来显示 64 位整数,

         64 位浮点数     shell 中的数字都是这种类型。下面的表示都是浮点数: {"X" : 3.1415926} {"X" : 3}

         字符串     UTF-8 字符串都可表示为字符串类型的数据: {"x" : "foobar"}

         符号     不支持这种类型。 shell 将数据库里的符号类型转换成字符串。

         对象 id     对象 id 是文档的 12 字节的唯一 ID, {"X" :ObjectId() }

         日期     日期类型存储的是从标准纪元开始的毫秒数。不存储时区: {"X" new Date()}

         正则表达式     文档中可以包含正则表达式,采用 JavaScript 的正则表达式语法 : {"x" /foobar/i}

         代码     文档中还可以包含 JavaScript 代码: {"x" function() { /* …… */ }}

         二进制数据     二进制数据可以由任意字节的串组成。不过 shell 中无法使用。

         最大值     BSON 包括一个特殊类型,表示可能的最大值。 shell 中没有这个类型。

         最小值     BSON 包括一个特殊类型,表示可能的最小值。 shell 中没有这个类型。

         未定义     文档中也可以使用未定义类型 :{"x":undefined}

         数组     值的集合或者列表可以表示成数组: {"x" ["a", "b", "c"]}

         内嵌文档     文档可以包含别的文档,也可以作为值嵌入到父文档中,数据可以组织得更自然些,不用非得存成扁平结构的: {"x" {"food" "noodle"}}

 

六:客户端工具

MongoVUE

 

Attachments:

MongoDB基础篇.docx (application/vnd.openxmlformats-officedocument.wordprocessingml.document)
MongoDB基础篇.docx (application/vnd.openxmlformats-officedocument.wordprocessingml.document)