mongoDB的入门

来源:互联网 发布:鄂南高中2017高考数据 编辑:程序博客网 时间:2024/06/07 19:23

这是本人第一篇博客,以前都是在笔记本或者电子笔记本上记录,工作学习过程中,在他人博客上学到很多技术、经验。我就想着,自己也可以开始博客之旅,为自己积累经验和技术,也能为他人分享自己的一点点经验和技术。这里主要是本人接触MongoDB的总结,适合前端小白,如果有大牛路过发现有不对的地方,还望能赐教。

一、数据库

1. 数据库的概念

  • 按照数据结构有组织地存放数据
  • 按照不同的需求进行查询
2.数据库的分类
  • SQL数据
支持Sql语言的数据库(传统的数据库)
Oracle、MySQL
  • NoSQL数据库
Redis、MongoDB

3. MongoDB的优势
  • 免费
  • 开源
  • 官方良好技术支持
现在使用mongoDB的网站有很多,例如
国内:天天动听、百度、淘宝网、大众点评、360、京东等
国外:Ebay、github、sf
  
二、MongoDB学习教程相关网址
1. MongoDB官网
https://www.mongodb.com

2. MongoDB的github
https://github.com/mongodb/

3.MongoDB的菜鸟教程
http://www.runoob.com/mongodb/mongodb-tutorial.html

4.MongoDB中文社区
http://www.mongoing.com/

三、MongoDB 简介
1. 什么是MongoDB
MongoDB是将数据存储为一个文档,数据结构由键值对组成。
键值对指: key: value
MongoDB文档类似于JSON对象。字段值可以包含其他文档类型,如数组、数组文档等

2.MongoDB和MySQL的区别
MongoDB:
  • 稳定性
  • 索引存放在内存中,能提高随机读写的性能。
  • 占用内存空间很大。
  • 数据存储为文档,数据结构由键值对组成,类似JSON对象

MySQL:
  • 使用关系型数据库管理系统(RDBMS)来存储和管理的大数据量
  • 数据以表格的形式出现
  • 每行为各种记录名称
  • 许多的行和列组成一张表单
  • 若干的表单组成database

四、各平台下安装MongoDB
1. window 平台下安装MongoDB
a. MongoDB官网提供下载地址:
https://www.mongodb.com/download-center#community

点击下载 .msi 程序
  • Windows Server 64-bit 适合64位的Window系统
  • 在 MongoDB 2.2 版本后已经不再支持 Windows XP 系统。最新版本也已经没有了 32 位系统的安装文件。
注意:mongoDB的github上有各版本的源文件,若在github上下载的源文件需要编译解析为程序方可使用
个人建议直接在官网下载最新版本进行安装,安装流程与一般程序安装类似。
程序安装完成,我们需手动点击按钮进行重启系统

b. 创建数据目录
MongoDB将数据存储在db目录下。但这个db目录不会自动创建,我们需要安装MongoDB完成后手动创建。需要注意,我们数据目录应该将db目录放在根目录下(如: C:\或者 D:\)
我们可以创建C:\目录下创建一个data目录(如果存在,则不需要重新创建),在data目录下创建db目录。
c. 将MongoDB的bin目录路径写入系统环境变量的path
  • 如果系统变量path找不到MongoDB的bin目录,那么执行MongoDB的服务、连接MongoDB数据库,都得通过进入MongoDB目录的bin目录,再执行mongod.exe程序
  • 如果系统变量path设置了MongoDB的bin目录,那么执行MongoDB的服务、连接MongoDB数据库,可以直接在命令行任何目录下,通过mongod、mongo命令运行程序
d. 命令行启动MongoDB服务器
  • mongod --dbpath c:\data\db
    如果成功启动服务,会输出如下信息
注意:开启服务成功后,如需连接数据库,则需要另开窗口执行对应的命令,不能在启动服务的窗口通过 Ctrl+C退出服务。
如果在关闭服务后执行mongo 命令进行连接数据库,则会报错连接失败:
C:\>mongo
MongoDB shell version v3.4.9
connecting to: mongodb://127.0.0.1:27017
2017-09-18T17:23:26.716+0800 W NETWORK  [thread1] Failed to connect to 127.0.0.1:27017 after 5000ms milliseconds, giving up.
2017-09-18T17:23:26.717+0800 E QUERY    [thread1] Error: couldn't connect to server 127.0.0.1:27017, connection attempt failed :
connect@src/mongo/shell/mongo.js:237:13
@(connect):1:6
exception: connect failed
e. 启动MongoDB服务器后,连接MongoDB

五、数据库的一些概念
1. MongoDB中的基本概念是文档、集合、数据库
  • database : 数据库
  • collection : 集合
  • document : 文档
  • field : 域
  • index : 索引
  • primary : 主键,MongoDB自动将_id字段设置为主键
2. 数据库
一个mongoDB中可建立多个数据库。MongoDB的默认数据库为:”db“,该数据库存储在data目录中。【即我们在前面手动创建的数据库目录db】
数据库命名规范:
  • 不能为空字符串("")
  • 不能含有” “(空格)、. 、$、/、\ 和 \0(空字符)
  • 应全部小写
  • 最多64字节
一些数据库名是保留的
  • admin: 要是将一个用户添加到这个数据库,这个用户自动继承所有数据库的权限。一些特定的服务器端命令也只能从这个数据库运行,比如列出所有的数据库或者关闭服务器
  • local: 这个数据永远不会被复制,可以用来存储限于本地单台服务器的任意集合
  • config:config数据库在内部使用,用于保存分片的相关信息。
3. 文档
文档是一组键值对(即JSON)。MongoDB的文档不需要设置相同的字段,并且相同的字段不需要相同的数据类型,这与关系型数据库有很大的区别,也是MongoDB 非常突出的特点。
文档键命名规范:
  • 键不能含有\0(空字符)。这个字符用来表示键的结尾
  • 和$有特别的意义,只有在特定环境下才能使用。
  • 以下划线"_"开头的键是保留的(不是严格要求的)。

文档需要注意的地方:

  • 文档中的键/值对是有序的。
  • 文档中的值不仅可以是在双引号里面的字符串,还可以是其他几种数据类型(甚至可以是整个嵌入的文档)。
  • MongoDB区分类型和大小写。
  • MongoDB的文档不能有重复的键。
  • 文档的键是字符串。除了少数例外情况,键可以使用任意UTF-8字符。
4. 集合
集合就是MongoDB文档组,相当于mySQL的table(数据表)。
集合的命名规范:
  • 集合名不能是空字符串""。
  • 集合名不能含有\0字符(空字符),这个字符表示集合名的结尾
  • 集合名不能以"system."开头,这是为系统集合保留的前缀。
  • 用户创建的集合名字不能含有保留字符。有些驱动程序的确支持在集合名里面包含,这是因为某些系统生成的集合中包含该字符。除非你要访问这种系统创建的集合,否则千万不要在名字里出现$。