您的位置:首页 > 数据库 > Mongodb

MongoDB的介绍、安装配置与入门

2014-01-27 17:27 811 查看
最近工作中使用到MongoDB,也了解了一些,这篇文章就做一个入门级的介绍。

一、介绍

MongoDB是一个用C++编写的可度可扩展性的开源NoSQL数据库,其优点:

1. 文档存储:数据存储以BSON/JSON文档,这对于Web应用程序有很大的意义。开发者API喜欢以JSON形式传输,这使得整个项目的数据表示可采用统一的模型。所有这一切都无需任何前期架构设计。

2. 可扩展性:MongoDB被用在一些规模庞大的环境中,FourSquare/Craiglist都在使用它。通过分片数据缩放处理理论上可实现更高的吞吐量。

3. 简单的复制:就像分片技术一样,MongoDB范围内复制过程同样简单好用,在副本机器上还有大量的复制选项。灵活的功能可满足用户应用的需求。(data数据可以直接复制使用)

4. 易于查询:MongoDB以文档的形式存储数据,不支持事务和表连接。因此查询的编写、理解和优化都容易得多。简单查询设计思路不同于SQL模式,嵌入文档在特定的环境下可得到更好的查询,然而这需要先加入集合。如果需要执行多个请求到数据库则需要加入其到客户端。在MongoDB时ODM工具(如Doctrine2)将发挥自身的优势。(json查询还是很方便的)

5. 安全性:由于MongoDB客户端生成的查询为BSON对象,而不是可以被解析的字符串,所以可降低受到SQL注入的攻击的危险。最常见的攻击类型为针对Web应用程序的攻击,在MongoDB上使用Doctrine2 ODMs 查询语言可减轻攻击风险。

6. 价格:MongoDB是免费的!(原文:http://blog.newbridgegreen.com/7-reasons-to-use-mongodb/)

当然,MongoDB的缺点也很明显,与关系型数据库相比:

1.mongoDB不支持事务操作,对于一些要求严格的系统,这点就是MongoDB的硬伤。

2.mongoDB占用的空间太大,就我现在所做的项目,随便测一段时间,mongoDB的数据就有1G,因为mongoDB的字段名也占用很大的一部分空间,而且删除记录不释放空间,而是进行标记。(运行db.repairDatabase()来整理记录,不过过程比较慢)

二、安装与配置

1.下载mongoDB并解压即可。为了方便,解压并移动到D:\mongodb。

2.在mongodb文件下创建一个文件夹,命名“db”,用于存放mongodb的数据。



3.命令行(cmd),找到mongodb的bin路径(当然把它加入环境变量path中也是可以的),然后输入mongod --dbpath=D:\mongodb\db指定数据存放的文件夹“db”。



4.mongodb采用27017端口,我们可以在浏览器中输入:http://localhost:27017/,打开后可以查看mongodb的管理信息。

5.如果mongoDB没有服务正常启动,发生系统错误 109。那么删除数据库目录下mongod.lock文件然后重新启动即可。

6.这样每次启动mongoDB服务很不方便,我们可以像Oracle或MySQL一样,把它添加到windows服务中去,每次随系统自启动,不是更方便吗。

D:\mongodb\bin>mongod --install --serviceName mongoDB --serviceDisplayName mongoDB --logpath D:/mongodb/logs/mongoDB.Log --dbpath D:/mongodb/db --directoryperdb 

--install:安装MongoDB服务

--remove:与--install相对,删除服务。

--serviceName:安装Windows服务时使用的服务名

--serviceDisplayName:在Windows服务管理器中显示的服务名

--logpath:MongoDB日志输出文件名称。虽说该参数直译是“日志路径”,其实要指定的是一个具体的完整文件名。这里我使用的是C盘根目录下的MongoDB.Log文件。该文件不用事先创建,直接指定就是了。

--dbpath:指定MongoDB数据存放的路径。这个就是最关键的参数了,不仅该目录要存在,并且最好不要以“\”结尾。

--directoryperdb:这个参数很好理解,让MongoDB按照数据库的不同,针对每一个数据库都建立一个目录,所谓的“目录每数据库”。

以后我们就可以在命令行下使用用命令net start MongoDB和net stop MongoDB来启动和停止MongoDB了,在本地服务中也可看到



三、入门操作

笔者用在工作中使用mongoDB也就进行了查询的一个操作:打开CMD,输入mongod,默认连接test数据库。



注:1.show dbs查看mongoDB中有哪些数据库,如SMB,test等。

2.use test连接哪个数据库。

3.show collections查看test数据库中有哪些数据集。

4.db.person.find()查询语句,查询person数据集中内容。

如果想继续了解mongoDB更多的内容,入门级的推荐:8天学通MongoDB
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: