MongoDB 是一个基于分布式文件存储的数据库。是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,可以存储比较复杂的数据类型。MongoDB 最大的特点是它支持的查询语言非常强大,其语法类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。
目前 支持 MongoDB 2.4以上版本的数据库。MongoDB 2.0和 MongoDB 3.0版本在以验证模式和非验证模式启动服务时,启动方式相同;但在创建数据库时,方式有所不同,以下将做详细描述。
在使用 MongoDB 数据库时, 需先启动所要连接的 MongoDB 服务,以下基于mongodb-win32-i386-2.6.6 版本对 MongoDB 服务进行说明。
启动 MongoDB 服务
mongod.exe --dbpath C:\MongoDB\data --logpath C:\MongoDB\log\log.txt。
mongod.exe --dbpath C:\MongoDB\data --logpath C:\MongoDB\log\log.txt -auth。
mongod.exe --repair --dbpath C:\MongoDB\data。
MongoDB 的启动方式分为非用户验证和用户验证两种方式启动,通过不同的方式启动,数据库的连接信息参数设置有所不同。具体说明如下:
创建数据库
use test
db.addUser("map","map")
mongod.exe --dbpath C:\MongoDB\data --logpath C:\MongoDB\log\log.txt -auth。
use admin
db.createUser({user:'admin',pwd:'admin',roles:[{role:"userAdminAnyDatabase", db:"admin"}]})
db.system.version.update({'_id':'authSchema'},{$set:{'currentVersion':3}})
db.system.version.find()
use test
db.createUser({user:'map',pwd:'map',roles:[{role:"dbOwner",db:"test"}]});
mongod.exe --setParameter authenticationMechanisms=MONGODB-CR --auth
综上,若在认证模式下使用MongDB 数据库,则数据库连接信息中数据库名称即为 test,用户名和密码分别为 map;map。
打开数据库
以用户验证和非用户验证方式启动服务后,打开数据源的连接设置参数不一致,具体情况如下表所示:
MongoDB 启动方式 | admin数据库是否有有用户 | 普通数据库是否有有用户 | 是否输入用户名、密码 | 是否可连接 |
无用户验证 | × |
× |
× |
√ |
× |
× |
√ |
× |
|
× |
√ |
× |
√ |
|
× |
√ |
√ |
√ |
|
√ |
× |
× |
√ |
|
√ |
× |
√ |
× |
|
√ |
√ |
× |
√ |
|
√ |
√ |
√ |
√ |
|
用户验证 | × |
× |
× |
× |
× |
× |
√ |
× |
|
× |
√ |
× |
× |
|
× |
√ |
√ |
√ |
|
√ |
× |
× |
× |
|
√ |
× |
√ |
× |
|
√ |
√ |
× |
× |
|
√ |
√ |
√ |
√ |