Mongodb 初探
2017-03-17 22:14
169 查看
什么是 Mongodb
要想解释 Mongodb 首先得解释“非关系型数据库”。我们知道传统数据库都是以行和列进行存储,拥有相同列的行数据组成了一个表,多个表组成了一个数据库。表与表之间是有关系的,所以称为关系型数据库。而与之相对的别一种概念 NoSQL (Not only SQL) 却是泛指非关系型数据库,那非关系型数据库就不是以行和列的概念来组织的了,尤其是列的概率,更是一种颠覆。
一般非关系型数据库包括:
健值存储数据库
列存储数据库
文档型数据库
图形数据库
Mongodb 其实是一种文档型数据库,它的数据载体是一种类 JSON 的 BSON 格式,不过你可以认为它就是 JSON 不过支持二进制类型。拿关系型数据库作类比,以前的表在 Mongodb 中就叫做 Collections,只是个定义不同,与之对应的以前的行,这时就叫做 Document。没有列的概念,如果偏要说列体现在哪里,可以认为是 BSON 的 Filed。
这种存储格式也决定普通意义的按列索引,严格的列规范在这时就不受用了。不过 Mongodb 自然有自己优势,那就是插入数据不再关心要不要严格一致,缺少某些列也可以允许插入。并且按 Filed 查找也同样保证了高效。那业务在做技术选型的时候就可以考虑这些特点进行决策了。
如何使用 Mongodb
安装
最简单的方法,就是利用 yum 进行安装。
上面就配置好了 mongodb 的 yum 源,直接运行
如果中途下载失败,可以根据提示,手动到相就 url 下面下载安装 rpm 包。
配置
默认配置文件在 /etc/mongod.conf。跟一般的软件配置文件类似,很多项看名字就可以知道是什么意思了。有下面的几项比较重要。
默认该关闭,因为 mongodb 启动时,是不用验证的,谁都可以连接上来操作,但这样不安全。所以第一步我们先来添加一些用户。在保证auth=true 被注释的情况下,运行
使用
结束语
有了上面的直接感受,就算是 mongodb 体验了一下,相信后面的发挥就可以自由想像了。
要想解释 Mongodb 首先得解释“非关系型数据库”。我们知道传统数据库都是以行和列进行存储,拥有相同列的行数据组成了一个表,多个表组成了一个数据库。表与表之间是有关系的,所以称为关系型数据库。而与之相对的别一种概念 NoSQL (Not only SQL) 却是泛指非关系型数据库,那非关系型数据库就不是以行和列的概念来组织的了,尤其是列的概率,更是一种颠覆。
一般非关系型数据库包括:
健值存储数据库
列存储数据库
文档型数据库
图形数据库
Mongodb 其实是一种文档型数据库,它的数据载体是一种类 JSON 的 BSON 格式,不过你可以认为它就是 JSON 不过支持二进制类型。拿关系型数据库作类比,以前的表在 Mongodb 中就叫做 Collections,只是个定义不同,与之对应的以前的行,这时就叫做 Document。没有列的概念,如果偏要说列体现在哪里,可以认为是 BSON 的 Filed。
这种存储格式也决定普通意义的按列索引,严格的列规范在这时就不受用了。不过 Mongodb 自然有自己优势,那就是插入数据不再关心要不要严格一致,缺少某些列也可以允许插入。并且按 Filed 查找也同样保证了高效。那业务在做技术选型的时候就可以考虑这些特点进行决策了。
如何使用 Mongodb
安装
最简单的方法,就是利用 yum 进行安装。
vim /etc/yum.repos.d/mongodb.repo 输入下面的内容: [mongodb] name=10gen Repository baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64 gpgcheck=0
上面就配置好了 mongodb 的 yum 源,直接运行
sudo yum install mongodb-org
如果中途下载失败,可以根据提示,手动到相就 url 下面下载安装 rpm 包。
配置
默认配置文件在 /etc/mongod.conf。跟一般的软件配置文件类似,很多项看名字就可以知道是什么意思了。有下面的几项比较重要。
auth=true
默认该关闭,因为 mongodb 启动时,是不用验证的,谁都可以连接上来操作,但这样不安全。所以第一步我们先来添加一些用户。在保证auth=true 被注释的情况下,运行
service mongod start
// 首先我们创建一个自己的库
[root@localhost mongodb]# mongo
MongoDB shell version: 2.6.12
connecting to: test
> use mydb
switched to db mydb
>
// 使用 use [database_name] 就是切换到数据库,如果没有,就新建。
> db.addUser("temp", "temp")
WARNING: The 'addUser' shell helper is DEPRECATED. Please use 'createUser' instead
Successfully added user: { "user" : "temp", "roles" : [ "dbOwner" ] }
>
// 现在开始,剩下的命令操作的上下文环境都是在 mydb 的库中。
// db.addUser([user], [pwd]) 在该库中添加一个用户。
// 打开配置文件中的auth=true,然后
service mongod restart
// 重启 mongod 数据库
[root@localhost mongodb]# mongo
MongoDB shell version: 2.6.12
connecting to: test
> use mydb
switched to db mydb
> db.auth("temp", "temp")
// 在 mydb 库下面给 temp 用户授权,这样的话,就可以拿 temp/temp 这个用户去登录 mydb 这个库了。
使用
> db.mytable.insert({id:1}) WriteResult({ "nInserted" : 1 }) > show collections mytable system.indexes // db.[Collection].insert([BSON]) 这里的 Collection 故意起名为 mytable,其实就是对应的表,insert 参数的内容就是一个 BSON 对象 > db.mytable.find() { "_id" : ObjectId("58cbebd3cd892e48484ffc86"), "id" : 1 } // 就可以看到刚插入的一个文档了。
结束语
有了上面的直接感受,就算是 mongodb 体验了一下,相信后面的发挥就可以自由想像了。
相关文章推荐
- VS2010 C# & MongoDB开发(一) 初探
- Nosql数据库教程之初探MongoDB - 第一部分
- MongoDB GridFS 初探
- NoSql数据库初探-mongoDB环境搭建
- 第三节 MongoDB下samus源码初探
- mongoDB client初探
- 【MongoDB数据库】MongoDB 命令入门初探
- MongoDB基础理念及操作初探
- mongodb 学习初探
- Nosql数据库教程之初探MongoDB - 第一部分
- Windows 10 下 MongoDB初探--安装和启动
- mongoDB 初探(一)
- MongoDB初探-细说索引
- MongoDb初探
- mongodb 初探
- MongoDB 数据库的初探
- MapReduce初探之一~~基于Mongodb实现标签统计
- MongoDB 初探
- NoSql数据库初探-mongoDB读操作
- mongoDB的读书笔记(04)_【Replica】(05)_初探Replica set副本集的搭建 By Test模式