分布式文件存储的数据库——Mongodb

本文涉及的产品
云数据库 MongoDB,通用型 2核4GB
简介: 什么是mongodb MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。    MongoDB是一个介于关系数据库和 非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。

什么是mongodb

MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。   

MongoDB是一个介于关系数据库和 非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似json的bjson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。

mongodb的几大优势

MongoDB是面向文档的数据库,不是关系型数据库。

1、MongoDB有丰富的数据模型,基本的思路就是将原来“行”的概念换成更加灵活的“文档”模型。一条记录可以表示非常复杂的层次关系。

2、非常容易扩展。面对数据量的不断上涨,通常有两种方案,一种是购买更好的硬件,别一种是分散数据,进行分布式的扩展,前者有着非常大的缺点,因为硬件通常是有物理极限的,当达到极限以后,处理能力就不可能再进行扩展了。所以建议的方式是使用集群进行扩展。MongoDB所采用的面向文档的数据模型使其可以自动在多台服务器之间分割数据。它还可以平衡集群的数据和负载,自动重排文档。

3、丰富的功能。包括索引、存储JavaScript、聚合、固定集合、文件存储等。

4、卓越的性能。

5、方便的管理,除了启动数据库服务器之外,几乎没有什么必要的管理操作。管理集群只需要知道有新增加的节点,就会自动集成和配置新节点。

mongodb的几个基本概念

文档

文档是MongoDB中数据的基本单元,非常类似于关系数据库管理系统中的行。

文档是MongoDB的核心概念。多个键及其关联的值有序地放置在一起便是文档。

MongoDB以类JSON的格式来表示文档,例如:

{"greeting":"hello mongodb!"}

以键值形式存储,值可以是不同的类型,比如字符串,整型等。

集合

集合就是一组文档。类似于关系型数据库中的表。

我们可以使用任意的UTF-8字符串来命名集合。

为了使组织结构更好些,我们可以使用子集合。组织集合的一种惯例是使用“.”字符分开的按命名空间划分的子集合。

数据库

MongoDB中多个文档组成集合,同样多个集合可以组成数据库。一个MongoDB实例可以承载多个数据库,它们之间可视为完全独立的。

数据库名可以是任意UTF-8字符串。

除了一些规则外,有一些数据库名是保留的,不能作为数据库名,包括“admin”、“local”、"config"。

32位win7下用虚机安装64位ubuntu

如果是32位的ubuntu安装起来很顺利没什么问题,但是到了安装64位ubuntu的时候出问题了。

报错如下:

This kernel requires an x86-64 CPU, but only detected an i686 CPU.
Unable to boot - please use a kernel appropriate for your CPU.

解决办法:

先下载一个cpu-z,我下载的地址是

http://www.xiazaiba.com/html/160.html

打开并且查看一下

如果显示支持64位那么就应该是bios里边没有进行设置的原因了,重启电脑进入bios

找到 CPU ==> Intel(R) Virtualization Technology ==> 设置为 Enabled

注意:这之后要冷启动才能生效。

然后进行系统重新安装,一切正常。

启动mongodb

首先是下载和安装,下载就到mongodb的官方网站上,在baidu或者google输一下,基本上第一个就是,我的下载地址是:

http://www.mongodb.org/downloads

因为使用的是64位的ubuntu,所以下载了64-bit的mongodb,下载后解压缩。

到解压后的bin目录里执行./mongod

提示路径不存在,需要创建路径,执行mkdir -p /data/db,并授予权限。

然后重新执行./mongod,正常启动。

在浏览器中输入

http://localhost:28017

可以获得数据库的管理信息。

shell中的CRUD

当上面的启动完成之后可以就可以使用shell了,运行./mongo,出现如下界面

输入db可以看到,默认连到test库上

mongodb自带了一个JavaScript Shell,可以通过命令行与mongodb实例进行交互。

可以直接利用javascript进行交互,也可以利用javascript中的函数和标准库。

增加

假设插入一条博客的信息有标题、文章内容和日期。

也就是说插入了一个post文件到blog集合中。

查看一下是否插入成功

可以看到查询的记录,其中_id是自动加入的记录。

读取

可以使用findOne()查看其中的一个文档。
上面说到的find()是查询所有记录的意思。find和findOne都可以接受文档形式的查询条件。

更新

更新操作其实就是update函数。

新增加备注

执行更新,需要加上条件

查看结果

删除

删除就是指remove函数。

删除完文档post之后,查看blog集合已经没有相应的post文档了。

操作的明细信息

关于mongodb的明细操作在[中文版] MongoDB权威指南中都已经有了非常详细的说明,有需要的,可以到地址:

http://code.google.com/p/mycloub/downloads/list

进行下载并且深入研究。

相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。   相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
目录
相关文章
|
1月前
|
Oracle 关系型数据库 分布式数据库
分布式数据库集成解决方案
分布式数据库集成解决方案
196 0
|
21天前
|
存储 数据采集 数据挖掘
【软件设计师备考 专题 】数据仓库和分布式数据库基础知识
【软件设计师备考 专题 】数据仓库和分布式数据库基础知识
193 0
|
29天前
|
存储 SQL 分布式计算
TiDB整体架构概览:构建高效分布式数据库的关键设计
【2月更文挑战第26天】本文旨在全面概述TiDB的整体架构,深入剖析其关键组件和功能,从而帮助读者理解TiDB如何构建高效、稳定的分布式数据库。我们将探讨TiDB的计算层、存储层以及其他核心组件,并解释这些组件是如何协同工作以实现卓越的性能和扩展性的。通过本文,读者将能够深入了解TiDB的整体架构,为后续的学习和实践奠定坚实基础。
|
1月前
|
NoSQL 网络协议 MongoDB
Windows公网远程连接MongoDB数据库【无公网IP】
Windows公网远程连接MongoDB数据库【无公网IP】
|
1月前
|
存储 NoSQL 关系型数据库
一篇文章带你搞懂非关系型数据库MongoDB
一篇文章带你搞懂非关系型数据库MongoDB
55 0
|
1月前
|
存储 供应链 安全
新一代数据库技术:融合区块链与分布式存储的未来前景
传统的数据库技术在面对大规模数据存储和安全性方面存在诸多挑战,而新一代数据库技术正在崭露头角。本文将探讨如何融合区块链与分布式存储技术,为数据库领域带来全新的发展机遇,并分析其在实际应用中的潜力与前景。
|
1月前
|
运维 关系型数据库 分布式数据库
客户说|从4小时到15分钟,一次分布式数据库的丝滑体验
识货APP致力于为广大用户提供专业的网购决策指导,为喜欢追求性价比的网购朋友带来及时劲爆的运动、潮流、生活、时尚等网购优惠资讯,产品覆盖国内外主流购物商城。它提供了全球范围内的时尚品牌、潮流单品的信息,帮助用户发现和购买最新、最热、最具性价比的时尚商品。近年来,各大电商平台上的商品信息持续增加,海量商品信息增加了消费者的选购成本。识货从用户视角出发,不断整合行业渠道供给,降低发现和筛选成本,帮助用户更高效地购买到最具性价比的产品。
|
1月前
|
人工智能 NoSQL MongoDB
|
1月前
|
运维 关系型数据库 分布式数据库
客户说|从4小时到15分钟,一次分布式数据库的丝滑体验
识货APP引入PolarDB分布式版,轻松完成分布式演进
客户说|从4小时到15分钟,一次分布式数据库的丝滑体验
|
1月前
|
Oracle 关系型数据库 分布式数据库
分布式数据库集成解决方案2
分布式数据库集成解决方案2
151 0

热门文章

最新文章