MongoDB简介,使用原理,安装以及简单的使用

来源:互联网 发布:python mock 编辑:程序博客网 时间:2024/05/18 00:21

MongoDB
简介
MongoDB[1] 是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。
mongoDB
MongoDB[2] 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。

mongodb集群参考
特点
它的特点是高性能、易部署、易使用,存储数据非常方便。主要功能特性有:
*面向集合存储,易存储对象类型的数据。
*模式自由。
*支持动态查询。
*支持完全索引,包含内部对象。
*支持查询。
*支持复制和故障恢复。
*使用高效的二进制数据存储,包括大型对象(如视频等)。
*自动处理碎片,以支持云计算层次的扩展性。
*支持RUBY,PYTHON,JAVA,C++,PHP,C#等多种语言。
*文件存储格式为BSON(一种JSON的扩展)。
*可通过网络访问。
使用原理
所谓“面向集合”(Collection-Oriented),意思是数据被分组存储在数据集中,被称为一个集合(Collection)。每个集合在数据库中都有一个唯一的标识名,并且可以包含无限数目的文档。集合的概念类似关系型数据库(RDBMS)里的表(table),不同的是它不需要定义任何模式(schema)。Nytro MegaRAID技术中的闪存高速缓存算法,能够快速识别数据库内大数据集中的热数据,提供一致的性能改进。
模式自由(schema-free),意味着对于存储在mongodb数据库中的文件,我们不需要知道它的任何结构定义。如果需要的话,你完全可以把不同结构的文件存储在同一个数据库里。
存储在集合中的文档,被存储为键-值对的形式。键用于唯一标识一个文档,为字符串类型,而值则可以是各种复杂的文件类型。我们称这种存储形式为BSON(Binary Serialized Document Format)。[3]
[4] MongoDB已经在多个站点部署,其主要场景如下:
1)网站实时数据处理。它非常适合实时的插入、更新与查询,并具备网站实时数据存储所需的复制及高度伸缩性。
2)缓存。由于性能很高,它适合作为信息基础设施的缓存层。在系统重启之后,由它搭建的持久化缓存层可以避免下层的数据源过载。
3)高伸缩性的场景。非常适合由数十或数百台服务器组成的数据库,它的路线图中已经包含对MapReduce引擎的内置支持。
不适用的场景如下:1)要求高度事务性的系统。
2)传统的商业智能应用。
3)复杂的跨文档(表)级联查询。

应用案例
下面列举一些公司MongoDB的实际应用:[7]
• Craiglist上使用MongoDB的存档数十亿条记录。
• FourSquare,基于位置的社交网站,在Amazon EC2的服务器上使用MongoDB分享数据。
• Shutterfly,以互联网为基础的社会和个人出版服务,使用MongoDB的各种持久性数据存储的要求。
• bit.ly, 一个基于Web的网址缩短服务,使用MongoDB的存储自己的数据。
• spike.com,一个MTV网络的联营公司, spike.com使用MongoDB的。
• Intuit公司,一个为小企业和个人的软件和服务提供商,为小型企业使用MongoDB的跟踪用户的数据。
• sourceforge.net,资源网站查找,创建和发布开源软件免费,使用MongoDB的后端存储。
• etsy.com ,一个购买和出售手工制作物品网站,使用MongoDB。
• 纽约时报,领先的在线新闻门户网站之一,使用MongoDB。
• CERN,著名的粒子物理研究所,欧洲核子研究中心大型强子对撞机的数据使用MongoDB。

安装

1、解压安装并配置环境变量
vi /etc/profile
这里写图片描述
使保存生效:source /etc/profile
2、创建数据库目录
MongoDB的数据存储在data目录的db目录下,但是这个目录在安装过程不会自动创建,所以你需要手动创建data目录,并在data目录中创建db目录。
以下实例中我们将data目录创建于根目录下(/)。
注意:/data/db 是 MongoDB 默认的启动的数据库路径(–dbpath)。
mkdir -p ./data/db
mkdir –p ./log
touch ./log/mongo.log
vi ./mongo.cfg
这里写图片描述
3、命令行中运行 MongoDB 服务
你可以再命令行中执行mongo安装目录中的bin目录执行mongod命令来启动mongdb服务。
注意:如果你的数据库目录不是/data/db,可以通过 –dbpath 来指定。
[hadoop@hadoop01 mongodb-3.2.1]# ./bin/mongod –dbpath ./data/db/ –rest &(加上&可以挂载后台启动)
或者: mongod –dbpath=./data/db/
Mongod:是他操作服务端启停服务的
4、MongoDB后台管理 Shell
如果你需要进入MongoDB后台管理,你需要先打开mongodb装目录的下的bin目录,然后执行mongo命令文件。
MongoDB Shell是MongoDB自带的交互式Javascript shell,用来对MongoDB进行操作和管理的交互式环境。
当你进入mongoDB后台后,它默认会链接到 test 文档(数据库):
cd/usr/local/mongodb/bin[hadoop@hadoop007mongodblinuxx86643.2.1] ./bin/mongo
5.关闭MongoDB
a. 可以使用操作系统的 kill 命令,给 mongod 进程发送 SIGINT 或 SIGTERM 信号,
即 “kill -2 PID,” 或者 “kill -15 PID“。
建议不要使用 ”kill -9 pid“,因为如果 MongoDB 运行在没开启日志(–journal)的情况下,可能会造成数据损失。
b. mongod –shutdown –dbpath=./data/db/

mongodb的简单操作

创建mongodb数据库:hadoop(如果里面没有内容的话,创建的是虚表)

use hadoop

显示当前mongodb数据库:

db

查看数据库

show dbs;

删除当前库下的集合persons:

db.persons.drop()

往persons集合中插入数据:(只能插入一个集合)

db.persons.insert({name:”zhangsan”,age:15,sex:”M”})
db.persons.insert({name:”lisi”,sex:”M”})
db.persons.insert({name:”wangwu”,age:18})
db.persons.insert({name:”xiaoer”,age:18,sex:”M”})
db.persons.insert({name:”tom”,age:17})
db.persons.insert({name:”Helen”,age:15,sex:”F”})
db.persons.insert({name:”Judy”,age:15,sex:”F”})

db.persons.find().toArray()

创建集合并插入数据

db.collection.insert({“name”:”zhangsan”,”sex”:”1”})
db.collection.find({“name”:”zhangsan”}); #查找名字是张三的信息
显示库下的所有集合:
show collections;

原创粉丝点击