共计 2729 个字符,预计需要花费 7 分钟才能阅读完成。
1. 初识
接触 MongoDB,是由于最近在工作中用到了 MongoDB 做数据存储。之前也听说过这个 NoSQL 数据库,但是一直没有尝试去使用它做开发。这次趁着这个机会,想好好学习下这个 NoSQL 数据库。每次听到这个名字,总是想,为什么它的 Logo 不是一个芒果呢!
2. 简介
MongoDB 是一款 C ++ 编写的开源的跨平台面向文档数据库,是 NoSQL 数据库的一种。MongoDB 摒弃了传统数据库中基于表的数据结构,采用类似 JSON 格式的文档结构来存储数据(MongoDB 中称这种格式为 BSON)。MongoDB 最初是由 10gen(2013 年更名为 MongoDB Inc.)公司于 2007 年开发的,并于 2009 年开源。
3. 术语
在使用 MongoDB 前,我们有必要了解下 MongoDB 中的术语。就像我们使用关系型数据一样,我们得先了解下什么是表(Table),什么是数据库(Schema)。
3.1 Document
是 MongoDB 中的数据的基本单元,类似于我们熟悉的关系型数据库中 ” 行 ” 的概念。在 MongoDB 中,Document是一系列有序的键值对的集合。在编程语言中,像 Map,Hashtable 和 Dictionary 等数据结构可以和这种存储结构相匹配,比如对于 JavaScript 而言,它的对象就是以这种格式表示的。
{"greeting" : "Hello, world!"}
3.2 Collection
在 MongoDB 中,一个 Collection 是由一组 Document 组成的。类似的,Document 对应于关系数据中的 ” 行 ” 的概念,那么 Collection 就对应了数据库中 ” 表 ” 的概念。
在 Collection 中存储的 Document,必须包含一个 ”_id” 字段,用于表示纪录的主键,如果 Document 中没有包含,则 MongoDB 会自动生成一个。
MongoDB 中的 Collection 具有动态模式的特定,意思就是在一个 Collection 中包含的 Document,可以具有不同的结构。这个和关系型数据库不同,关系型数据中,表中的每一行的格式都是一致的。在 MongoDB 中,一个 Collection 可以包含不同格式的 Document:
{"greeting" : "Hello, world!"}
{"foo" : 5}
3.3 Database
就像一系列的 Document 组成了一个 Collection,在 MongoDB 中,一系列的 Collection 就组成了 Database。一个 Database 具有自己的权限控制,每个 Database 存储在独立的数据文件中。
4. 使用
4.1 启动 MongoDB 服务
通过 MongoDB 提供的 ”mongo
d” 命令来启动 MongoDB
mongo
d --dbpath mongo
db/data/
“–dbpath” 选项指定了 MongoDB 服务的数据存储目录。如果不指定任何参数,则默认的数据存储目录在 ”/data/db”。当执行命令以后,会输出当前系统的一些信息和 MongoDB 服务的一些信息,包括服务的端口号:27017。
4.2 使用mongo
shell 访问 MongoDB 服务
mongo
shell 是一个和 MongoDB 服务进行交互的客户端,同时也是一个 JavaScript 解释器。可以公共mongo
shell 对 MongoDB 中的数据进行操作。mongo
shell 是随 MongoDB 一起安装的,可以在目录 ”{MongoDB 安装目录}/bin/” 下找到 ”mongo
” 命令。
启动mongo
shell
mongo
如果没有指定任何参数,那么默认将会访问 localhost:27017 下 MongoDB 服务。当我们本地起了 MongoDB 服务以后,就可以直接连接到服务器了:
默认的数据库是 ”test”,我们可以通过变量名 ”db” 查看当前激活的数据库:
通过 ”use” 命令,可以切换数据库
如果完成工作后退出mongo
shell,可以输入 ”exit” 命令退出。
通过 ”help” 命令,可以获得mongo
shell 的帮助信息:
4.3 通过mongo
shell 进行 CRUD 操作
这里简单介绍下如何通过mongo
shell 进行简单的 CRUD 操作。
假设我们当前在 blog 数据库中。
4.3.1 insert 操作
我们给我们的 blog 数据库的的 ”post” Collection 下添加一篇文章:
4.3.2 query 操作
在上一步中,我们添加了一个 Document 到 Collection “blog” 中,现在我们需要查询这篇文章:
4.3.3 update 操作
现在,我们需要对这篇 blog 的内容进行修改:
4.3.4 delete 操作
最后,删除我们上面添加的 post:
5. 总结
这里,我们只是对 MongoDB 做了一个简单的认识,至于它的 CRUD 的各种语法,以及mongo
shell 的使用,且听下回分解~见 http://www.linuxidc.com/Linux/2016-08/134153.htm
更多 MongoDB 相关教程见以下内容:
CentOS 编译安装 MongoDB 与mongo
DB 的 php 扩展 http://www.linuxidc.com/Linux/2012-02/53833.htm
CentOS 6 使用 yum 安装 MongoDB 及服务器端配置 http://www.linuxidc.com/Linux/2012-08/68196.htm
Ubuntu 13.04 下安装 MongoDB2.4.3 http://www.linuxidc.com/Linux/2013-05/84227.htm
MongoDB 入门必读(概念与实战并重) http://www.linuxidc.com/Linux/2013-07/87105.htm
Ubunu 14.04 下 MongoDB 的安装指南 http://www.linuxidc.com/Linux/2014-08/105364.htm
《MongoDB 权威指南》(MongoDB: The Definitive Guide)英文文字版[PDF] http://www.linuxidc.com/Linux/2012-07/66735.htm
Nagios 监控 MongoDB 分片集群服务实战 http://www.linuxidc.com/Linux/2014-10/107826.htm
基于 CentOS 6.5 操作系统搭建 MongoDB 服务 http://www.linuxidc.com/Linux/2014-11/108900.htm
MongoDB 的详细介绍:请点这里
MongoDB 的下载地址:请点这里
本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-08/134152.htm