【MangoDB】介绍与安装
一、MangoDB简介
三、功能全
MongoDB作为一款通用型数据库,除了能够创建、读取、更新和删除数据之外,还提供了一系列不断扩展的独特功能
1、索引
支持通用二级索引,允许多种快速查询,且提供唯一索引、复合索引、地理空间索引、全文索引
2、聚合
支持聚合管道,用户能通过简单的片段创建复杂的集合,并通过数据库自动优化
支持存在时间有限的集合,适用于那些将在某个时刻过期的数据,如会话session。类似地,MongoDB也支持固定大小的集合,用于保存近期数据,如日志
4、文件存储
支持一种非常易用的协议,用于存储大文件和文件元数据。MongoDB并不具备一些在关系型数据库中很普遍的功能,如链接join和复杂的多行事务。省略 这些的功能是处于架构上的考虑,或者说为了得到更好的扩展性,因为在分布式系统中这两个功能难以高效地实现。
四、卓越的性能
六、注意事项
需要注意的是: #1、文档中的键/值对是有序的。 #2、文档中的值不仅可以是在双引号里面的字符串,还可以是其他几种数据类型(甚至可以是整个嵌入的文档)。 #3、MongoDB区分类型和大小写。 #4、MongoDB的文档不能有重复的键。 #5、文档中的值可以是多种不同的数据类型,也可以是一个完整的内嵌文档。文档的键是字符串。除了少数例外情况,键可以使用任意UTF-8字符。 文档键命名规范: #1、键不能含有\0 (空字符)。这个字符用来表示键的结尾。 #2、.和$有特别的意义,只有在特定环境下才能使用。 #3、以下划线"_"开头的键是保留的(不是严格要求的)。
七、下载安装
4.0下载地址: https://fastdl.mongodb.org/win32/mongodb-win32-x86_64-2008plus-ssl-4.0.8-signed.msi
安装时去除多余的组件安装提高速度:
此时MongoDB已经开启,浏览器访问http://localhost:27017/,页面上输出: It looks like you are trying to access MongoDB over HTTP on the native driver port.
说明MongoDB已经启动了,且它的默认端口(27017)没有被占用。
运行bin下的终端程序mongo.exe 其与mysql性质相同都是客户端!
'mongo' 看见欢迎信息则说明登录成功
此时没有任何的权限限制,默认是管理员角色。
八、创建账号
#1、创建账号 use admin db.createUser( { "user": "root", "pwd": "123", "roles": [ { "role": "root","db": "admin" } ] } ) use test db.createUser( { "user": "jerry", "pwd": "123", "roles": [ { "role": "readWrite", db: "test" }, { "role": "read", "db": "db1" } ] } ) 在mongodb中用不同的数据库来区分权限,要管理哪个数据库就在哪个数据库下创建用户即可,创建管理员账户则在admin下创建! db 是一个全局变量 表示当前数据库 db.createUser()是调用一个内部函数用于创建用户 每个账号可以具备多个角色
九、开启账号认证
默认情况下mongodb不会加载认证信息就像mysql跳过授权表一样,创建完账号用户需要开启用户认证。
具体方法:
修改配置文档mongod.cfg(位置:安装目录\bin下)
首先,将bind_ip改为0.0.0.0(让其他电脑可以访问,用于远程连接)
security: authorization: enabled # 注意缩进
然后找到#secuity:改成下图所示,开启安全认证。
然后重启MongDB Server服务,启用认证。
十、账号测试
#直接mongo进入程序 已经无法查看数据库 show dbs #登录方式1: authenticationDatabase指定数据库 mongo --port 27017 -u "root" -p "123" --authenticationDatabase "admin" #登录方式2:进入mongo后,进入某个数据库中,再输入密码 use admin db.auth("root","123") #删除账号 db.dropUser('用户名'); #修改密码 db.changeUserPassword(用户名, 新密码);