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

简介: 什么是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

进行下载并且深入研究。

目录
相关文章
|
10月前
|
存储 关系型数据库 分布式数据库
喜报|阿里云PolarDB数据库(分布式版)荣获国内首台(套)产品奖项
阿里云PolarDB数据库管理软件(分布式版)荣获「2024年度国内首版次软件」称号,并跻身《2024年度浙江省首台(套)推广应用典型案例》。
|
10月前
|
NoSQL MongoDB 数据库
数据库数据恢复—MongoDB数据库数据恢复案例
MongoDB数据库数据恢复环境: 一台操作系统为Windows Server的虚拟机上部署MongoDB数据库。 MongoDB数据库故障: 工作人员在MongoDB服务仍然开启的情况下将MongoDB数据库文件拷贝到其他分区,数据复制完成后将MongoDB数据库原先所在的分区进行了格式化操作。 结果发现拷贝过去的数据无法使用。管理员又将数据拷贝回原始分区,MongoDB服务仍然无法使用,报错“Windows无法启动MongoDB服务(位于 本地计算机 上)错误1067:进程意外终止。”
|
10月前
|
缓存 NoSQL Linux
在CentOS 7系统中彻底移除MongoDB数据库的步骤
以上步骤完成后,MongoDB应该会从您的CentOS 7系统中被彻底移除。在执行上述操作前,请确保已经备份好所有重要数据以防丢失。这些步骤操作需要一些基本的Linux系统管理知识,若您对某一步骤不是非常清楚,请先进行必要的学习或咨询专业人士。在执行系统级操作时,推荐在实施前创建系统快照或备份,以便在出现问题时能够恢复到原先的状态。
1105 79
|
10月前
|
存储 NoSQL MongoDB
MongoDB数据库详解-针对大型分布式项目采用的原因以及基础原理和发展-卓伊凡|贝贝|莉莉
MongoDB数据库详解-针对大型分布式项目采用的原因以及基础原理和发展-卓伊凡|贝贝|莉莉
403 8
MongoDB数据库详解-针对大型分布式项目采用的原因以及基础原理和发展-卓伊凡|贝贝|莉莉
|
10月前
|
存储 监控 分布式数据库
ClickHouse分布式数据库动态伸缩(弹性扩缩容)的实现
实现ClickHouse数据库的动态伸缩需要持续的维护和精细的操作。从集群配置到数据迁移,再到监控和自动化,每一步都要仔细管理以确保服务的可靠性和性能。这些活动可以显著提高应用的响应性和成本效率,帮助业务根据实际需求灵活调整资源分配。
541 10
|
9月前
|
运维 NoSQL 容灾
告别运维噩梦:手把手教你将自建 MongoDB 平滑迁移至云数据库
程序员为何逃离自建MongoDB?扩容困难、运维复杂、高可用性差成痛点。阿里云MongoDB提供分钟级扩容、自动诊断与高可用保障,助力企业高效运维、降本增效,实现数据库“无感运维”。
|
11月前
|
存储 关系型数据库 分布式数据库
【赵渝强老师】基于PostgreSQL的分布式数据库:Citus
Citus 是基于 PostgreSQL 的开源分布式数据库,采用 shared nothing 架构,具备良好的扩展性。它以插件形式集成,部署简单,适用于处理大规模数据和高并发场景。本文介绍了 Citus 的基础概念、安装配置步骤及其在单机环境下的集群搭建方法。
971 2
|
JSON NoSQL Java
mongoDB导出数据库所有集合内容到json文件
网上搜了一圈,官方并有提供批量导出所有集合到json文件的方法。有不少脚本可以实现,但是我还是习惯用java,如下 package starcLL.
2424 0
|
NoSQL MongoDB 数据库
数据库数据恢复——MongoDB数据库服务无法启动的数据恢复案例
MongoDB数据库数据恢复环境: 一台Windows Server操作系统虚拟机上部署MongoDB数据库。 MongoDB数据库故障: 管理员在未关闭MongoDB服务的情况下拷贝数据库文件。将MongoDB数据库文件拷贝到其他分区后,对MongoDB数据库所在原分区进行了格式化操作。格式化完成后将数据库文件拷回原分区,并重新启动MongoDB服务。发现服务无法启动并报错。
|
存储 NoSQL MongoDB
数据库数据恢复—MongoDB数据库迁移过程中丢失文件的数据恢复案例
某单位一台MongoDB数据库由于业务需求进行了数据迁移,数据库迁移后提示:“Windows无法启动MongoDB服务(位于 本地计算机 上)错误1067:进程意外终止。”

推荐镜像

更多