MongoDB入门系列一——MongoDB简介
2013-07-11 17:46
281 查看
MongoDB入门系列一——MongoDB简介
MongoDB是非关系数据库(NoSQL)中的一种,由C++语言编写。MongoDB是基于文档的数据库,最大的特性就是动态的数据模式,它不需要象传统的关系数据库一样在使用前必须先定义好表的结构、类型。它的这个特性使其很适合快速的web开发流程。
与关系数据库中行和列的数据存储方式不同的是,MongoDB使用二进制格式的JSON文档来存储数据。下面是MongoDB和SQL一些术语的对应:
更多的对应关系可以参考MongoDB和SQL的对应关系表:http://docs.mongodb.org/manual/reference/sql-comparison/
MongoDB官方支持的驱动有很多,包括Java、C/C++/C#、python、PHP、Ruby等驱动。大家可以从http://docs.mongodb.org/ecosystem/drivers/
上了解更多的信息。
同时,MongoDB的社区开发和维护了非常多的驱动。更多的信息可以参考:
http://docs.mongodb.org/ecosystem/drivers/community-supported-drivers/
MongoDB的安装
MongoDB是一个开源的数据库,可以从官网[http://www.mongodb.org/downloads]下载已编译好的压缩包,也可以下载源码来自己编译。下载的已编译好的压缩包直接解压就可以使用。
在一些平台上,MongoDB也支持使用包管理器来直接安装。比如在Ubuntu上可以使用apt-get来安装,在CentOS上可以使用yum来安装。更多的平台支持,可以参考:
http://www.mongodb.org/downloads#packages
在开始使用MongoDB前,我们先来了解一下MongoDB的版本的命名规则。
MongoDB的版本命名规则
MongoDB的版本号由三位组成,如2.4.5。前两位代表发布的系列号,如果系列号的最后一位是偶数,表示这个版本是稳定的版本,可以用于生产环境。如果系列号的最后一位是奇数,表示这个版本是个开发版本,只供测试用。第三位表示这个版本的补丁号。
比如说目前最高的稳定版本是2.4.5,这个版本号中2.4是发布的系列号,而5表示是2.4这个系列的第五个补丁。
注:目前MongoDB的驱动的版本和MongoDB的版本不是一一对应的。
开始使用MongoDB
下面的例子里我的系统环境是Mac,MongoDB的版本是2.4.5
1)解压:
解压后的bin文件夹里存放这mongodb各种可执行文件。
2)启动mongod
初学者有的时候会混淆mongod数据库服务和mongo shell。mongod是MongoDB数据库服务的程序,而mongo
shell是MongoDB的命令行工具。简单来说mongod就是服务器,mongo是客户端。
在bin目录下运行./mongod --help可以打印出所有mongod支持的参数。常用的参数有:
--dbpath:存放mongod数据文件的目录。默认为/data/db,这个目录需要事先创建。
--logpath:保存mongod日志的文件名。不指定这个参数时,日志都输出到启动该mongod的会话窗口。
--port:mongod进程所使用的端口号。默认为27017
--logappend:使用logpath时,这个参数就会将新的日志追加到原来的日志文件末尾,而不是重写新的日志文件。
--fork:以后台方式运行mongod。这个参数必须和--logpath或者--syslog一块儿使用。
3)连接数据库
mongod成功启动后,我们就可以通过运行mongo连接数据库了。如果不加任何参数,mongo会连接本机的27017端口。我们可以通过--host来指定mongod的机器名,--port指定mongod运行的端口号。也可以通过mongo
<host>:<port>来连接。
mongo shell是MongoDB的交互式的JavaScript shell。我们可以用它来管理操作数据库,还可以用来运行JavaScript程序。
4)操作数据库
如果没有指定要连接的数据库名,mongo shell会默认连接test数据库。
我们可以使用use <database>来切换数据库,这个数据库不必事先创建:
显示目前使用的数据库名:
往集合docs里查询一条数据:
查询集合docs里的文档:
我们可以看到这个文档比我们添加的数据多了一项_id,其类型是ObjectId。所有的MongoDB文档都需要有_id,且它的值必须是唯一的。如果我们插入的文档中没有这一项,MongoDB在插入数据库前会自动为这个文档生成一个新的ObjectId。
使用$set来更新一个文档:
这里用到了$set操作,否则MongoDB的Update命令只会保留_id和需要更新的域。
不使用$set来更新文档:
从这个例子我们可以看到由于我们没有使用$set,更新后的文档里{x:1}被删除了。
删除一个文档:
在篇介绍里,我们初步了解了MongoDB、MongoDB的安装启动和用Mongo shell对数据库的增删查改操作。下一篇我们将介绍MongoDB的三种部署方式和对MongoDB的监控。
MongoDB是非关系数据库(NoSQL)中的一种,由C++语言编写。MongoDB是基于文档的数据库,最大的特性就是动态的数据模式,它不需要象传统的关系数据库一样在使用前必须先定义好表的结构、类型。它的这个特性使其很适合快速的web开发流程。
与关系数据库中行和列的数据存储方式不同的是,MongoDB使用二进制格式的JSON文档来存储数据。下面是MongoDB和SQL一些术语的对应:
SQL | MongoDB |
数据库 | 数据库 (database) |
表 | 集合 (collection) |
列 | 文档 (document) |
行 | 域 (field) |
支持的平台和驱动
目前MongoDB支持64位的OS X, Linux, Windows和Solaris和32位的Linux和Windows。在生产环境中应该使用64位的版本,而32位的版本应该只在开发环境中使用。MongoDB官方支持的驱动有很多,包括Java、C/C++/C#、python、PHP、Ruby等驱动。大家可以从http://docs.mongodb.org/ecosystem/drivers/
上了解更多的信息。
同时,MongoDB的社区开发和维护了非常多的驱动。更多的信息可以参考:
http://docs.mongodb.org/ecosystem/drivers/community-supported-drivers/
MongoDB的安装
MongoDB是一个开源的数据库,可以从官网[http://www.mongodb.org/downloads]下载已编译好的压缩包,也可以下载源码来自己编译。下载的已编译好的压缩包直接解压就可以使用。
在一些平台上,MongoDB也支持使用包管理器来直接安装。比如在Ubuntu上可以使用apt-get来安装,在CentOS上可以使用yum来安装。更多的平台支持,可以参考:
http://www.mongodb.org/downloads#packages
在开始使用MongoDB前,我们先来了解一下MongoDB的版本的命名规则。
MongoDB的版本命名规则
MongoDB的版本号由三位组成,如2.4.5。前两位代表发布的系列号,如果系列号的最后一位是偶数,表示这个版本是稳定的版本,可以用于生产环境。如果系列号的最后一位是奇数,表示这个版本是个开发版本,只供测试用。第三位表示这个版本的补丁号。
比如说目前最高的稳定版本是2.4.5,这个版本号中2.4是发布的系列号,而5表示是2.4这个系列的第五个补丁。
注:目前MongoDB的驱动的版本和MongoDB的版本不是一一对应的。
开始使用MongoDB
下面的例子里我的系统环境是Mac,MongoDB的版本是2.4.5
1)解压:
bash-3.2$ tar -xzvf mongodb-osx-x86_64-2.4.5.tgz
解压后的bin文件夹里存放这mongodb各种可执行文件。
2)启动mongod
初学者有的时候会混淆mongod数据库服务和mongo shell。mongod是MongoDB数据库服务的程序,而mongo
shell是MongoDB的命令行工具。简单来说mongod就是服务器,mongo是客户端。
在bin目录下运行./mongod --help可以打印出所有mongod支持的参数。常用的参数有:
--dbpath:存放mongod数据文件的目录。默认为/data/db,这个目录需要事先创建。
--logpath:保存mongod日志的文件名。不指定这个参数时,日志都输出到启动该mongod的会话窗口。
--port:mongod进程所使用的端口号。默认为27017
--logappend:使用logpath时,这个参数就会将新的日志追加到原来的日志文件末尾,而不是重写新的日志文件。
--fork:以后台方式运行mongod。这个参数必须和--logpath或者--syslog一块儿使用。
bash-3.2$ mkdir -p /data/db bash-3.2$ ./mongod --dbpath /data/db --logpath /data/mongod.log --logappend --fork --port 30000 about to fork child process, waiting until server is ready for connections. forked process: 13289 all output going to: /data/mongod.log child process started successfully, parent exiting
3)连接数据库
mongod成功启动后,我们就可以通过运行mongo连接数据库了。如果不加任何参数,mongo会连接本机的27017端口。我们可以通过--host来指定mongod的机器名,--port指定mongod运行的端口号。也可以通过mongo
<host>:<port>来连接。
bash-3.2$ mongo --port 30000 MongoDB shell version: 2.4.5 connecting to: 127.0.0.1:30000/test Server has startup warnings: Thu Jul 11 16:02:13.974 [initandlisten] Thu Jul 11 16:02:13.974 [initandlisten] ** WARNING: soft rlimits too low. Number of files is 256, should be at least 1000 >
mongo shell是MongoDB的交互式的JavaScript shell。我们可以用它来管理操作数据库,还可以用来运行JavaScript程序。
4)操作数据库
如果没有指定要连接的数据库名,mongo shell会默认连接test数据库。
我们可以使用use <database>来切换数据库,这个数据库不必事先创建:
> use mydb switched to db mydb
显示目前使用的数据库名:
> db mydb
往集合docs里查询一条数据:
> db.docs.insert({x:1,y:1})
查询集合docs里的文档:
> db.docs.find() { "_id" : ObjectId("51de4d33b41543f9704cc936"), "x" : 1, "y" : 1 }
我们可以看到这个文档比我们添加的数据多了一项_id,其类型是ObjectId。所有的MongoDB文档都需要有_id,且它的值必须是唯一的。如果我们插入的文档中没有这一项,MongoDB在插入数据库前会自动为这个文档生成一个新的ObjectId。
使用$set来更新一个文档:
> db.docs.update({x:1},{$set:{y:2}}) > db.docs.find() { "_id" : ObjectId("51de4d33b41543f9704cc936"), "x" : 1, "y" : 2 }
这里用到了$set操作,否则MongoDB的Update命令只会保留_id和需要更新的域。
不使用$set来更新文档:
> db.docs.update({x:1},{y:3}) > db.docs.find() { "_id" : ObjectId("51de4d33b41543f9704cc936"), "y" : 3 }
从这个例子我们可以看到由于我们没有使用$set,更新后的文档里{x:1}被删除了。
删除一个文档:
> db.docs.remove({y:3}) > db.docs.find() >
在篇介绍里,我们初步了解了MongoDB、MongoDB的安装启动和用Mongo shell对数据库的增删查改操作。下一篇我们将介绍MongoDB的三种部署方式和对MongoDB的监控。
相关文章推荐
- mongodb基础系列——mongodb简介
- MongoDB系列教程(二):MongoDB简介
- 30分钟学MongoDB系列——Mongo分布式架构篇(简介)
- MongoDB系列(一):简介及安装
- 30分钟学MongoDB系列——简介篇(new!!!)
- MongoDB系列(一):简介及安装
- MongoDB系列(一):简介及安装
- MongoDB系列(一):简介及安装
- MongoDB系列教程(二):MongoDB简介
- jquery 系列 一,简介
- MongoDB(一):简介
- MongoDB(一)---简介
- MongoDB实战系列之六:mongodb的高可用集群设计实战
- Spring 系列: Spring 框架简介
- live555杂谈系列(一)---source,sink简介
- 容器与Docker简介(一)——微软微服务电子书翻译系列
- ArcGIS Viewer for Silverlight 系列:简介
- SpagoBI系列----------[01]SpagoBI简介及安装步骤
- PHP框架Yii系列教程(二):功能简介
- DVWA-1.9系列(简介)