mongodb
1.mongodb与其它nosql数据库的区别
我们之前应该接触过redis或者memcached,他们属于key-value数据库,他们运用哈希算法关联起来,能够达到快速的查询目的。
而mongodb是一种“文档数据库”,存储类型是以文档为主,该文档类型为(Bson,其实就是json的二进制对象)。

特点:mongodb的内部引擎是使用javascript解释器实现的,把文档存储成bson结构,在查询时,转换为js对象,并可以通过大家熟悉的js语法进行操作。

原理:mongodb在电脑磁盘文件系统之上,又包装了自己的一套文件系统---gridfs,里面存储的是一个一个的json二进制对象,也就是Bson。

我们如果想对Bson对象进行“增删改查”,我们就要使用js来操作,我们直接使用js来操作,然后mongodb内置的js引擎将我们的js解析成Bson对象的相关操作,然后执行增删改查。

2.mongodb和传统关系型数据库(Mysql/SqlServer/Oracle等)的区别
传统关系型数据库:结构化数据,定好了表结构之后,每一行的内容必是符合表结构的,就是说,列的个数,类型都一样。


mongodb的文档型数据库:以文档为单位,不用事先声明结构。我们创建json格式的数据,直接存储到mongodb的文档中。

与传统关系型数据库不同的是,我们可以创建不同结构(json对象都可以有自己独特的属性和值)的对象,存在同一个表下面。

一般我们的网站都有评论功能,有一些评论的下面还有回复,回复可以还有回复,也就是我们常说的楼中楼的效果:

在传统关系型数据库中,我们要有帖子表,然后有帖子的评论表,然后又有每个帖子的回复表,一些回复可能还会有打分,这样我们就要设计四张表,然后各自有主外键的关联,进行联合查询:

四张表查询起来效率不见得会很高。

而在mongodb中,就比较简单了。我们使用一个json格式就可以存储所有
的数据:


如此可见mongodb的一些优势。

下一篇我们将讲解mongdb的安装和基本的入门操作。
转载请注明出处:http://blog.csdn.net/acmman/article/details/53734215

mongoDB1--什么是mongoDB的更多相关文章

  1. mongodb群集

    项目目标:故障自动切换和自动修复成员节点,各个数据库之间数据完全一致.项目描述:副本集没有固定主节点,是整个集群选举得出的一个主节点,当其不工作时变    更其他节点.最小的副本集也应该具备一个pri ...

  2. MongoDB分片群集的部署(用心描述,详细易懂)!!

    概念: MongoDB分片是使用多个服务器存储数据的方法,以支持巨大的数据存储和对数据进行存储 优势: 1.减少了每个分片需啊哟处理的请求数,群集可以提高自己的存储容量和吞吐量 2.减少了每个分片存储 ...

  3. mongodb安装及副本集搭建

    mongodb下载地址:https://www.mongodb.com/dr/fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel62-3.2.7.tg ...

  4. mongodb 配置单实例与双实例

    环境: centos6.5 192.168.16.70 配置单实例mongodb:[root@www soft]# tar xf mongodb-linux-x86_64-rhel62-3.2.7.t ...

  5. mongodb多实例部署

    安装与管理MongoDB 1.安装解压源码包 [root@bogon ~]# tar xf mongodb-linux-x86_64-rhel70-4.0.6.tgz [root@bogon ~]# ...

  6. MongoDB笔记

    mongodb简介 MongoDB 是一个基于分布式文件存储的数据库.存储的是Bson结构的文档(二进制的JSON),内部执行引擎为JS解释器,把文档存储为BSON结构,在查询时,转换为JS对象,可以 ...

  7. MongoDB【第一篇】MongodDB初识

    NoSQL介绍 一.NoSQL简介 NoSQL,全称是”Not Only Sql”,指的是非关系型的数据库. 非关系型数据库主要有这些特点:非关系型的.分布式的.开源的.水平可扩展的. 原始的目的是为 ...

  8. TODO:Linux安装PHP MongoDB驱动

    TODO:Linux安装PHP MongoDB驱动 PHP利于学习,使用广泛,主要适用于Web开发领域. MongoDB的主要目标是在键/值存储方式(提供了高性能和高度伸缩性)以及传统的RDBMS系统 ...

  9. 搭建LNAMP环境(六)- PHP7源码安装MongoDB和MongoDB拓展

    上一篇:搭建LNAMP环境(五)- PHP7源码安装Redis和Redis拓展 一.安装MongoDB 1.创建mongodb用户组和用户 groupadd mongodb useradd -r -g ...

  10. FineReport如何连接和使用MongoDB数据库

    随着NoSQL数据库越来越流行,MongoDB数据库作为NoSQL数据库中的领头羊,使用也越来越广泛.为此,FineReport V8.0版本提供了数据连接和数据集接口,可以通过开发一款可以连接和使用 ...

随机推荐

  1. Ubantu安装mysql

    在Linux下MySQL的安装,我一直觉得挺麻烦的,因为之前安装时就是由于复杂的配置导致有点晕.今天,需要在Linux下用Qt连接MySQL.遂安装配置了一把. 1)首先检查系统中是否已经安装了MyS ...

  2. inception cenOS 安装

    inception手册http://mysql-inception.github.io/inception-document/install/ 执行命令sh inception_build.sh,ce ...

  3. js replace(a,b)之替换字符串中所有指定字符的方法

    var str = 'abcadeacf'; var str1 = str.replace('a', 'o'); alert(str1); // 打印结果: obcadeacf var str2 = ...

  4. angular.js跨域post解决方案

    跨域,前端开发中经常遇到的问题,AngularJS实现跨域方式类似于Ajax,使用CORS机制. 下面阐述一下AngularJS中使用$http实现跨域请求数据. AngularJS XMLHttpR ...

  5. HDU 1079 Calendar Game 博弈

    题目大意:从1900年1月1日 - 2001年11月4日间选择一天为起点,两个人依次进行两种操作中的任意一种,当某人操作后为2001年11月4日时,该人获胜.问先手是否获胜 操作1:向后移一天 操作2 ...

  6. python变量与数据类型

    变量 什么是变量 所谓变量,指的是在程序运行过程中需要用到的中间结果,变量定义后,会占用一块内存开辟的空间地址,通过内存空间确保同一时间的唯一性. >>> print(id.__do ...

  7. KMP算法的java实现

    package com.trs.utils; public class KMPStr { /* * 在KMP算法中,最难求的就是next函数,如何理解next函数是一个难题,特别是k=next[k], ...

  8. 扩展kmp——原创

    扩展kmp                 LRH 所谓扩展kmp指的是与kmp相似的求辅助数组的原理,但是本身与kmp关系不大. 1.exkmp的用途:给定一个主串s和一个子串t,求出s中每一个后缀 ...

  9. hibernate与spring整合实现transaction

    实现transaction时出现了大大小小的问题,这里会一一详解. 先贴出applicationContext.xml <?xml version="1.0" encodin ...

  10. Spark开发指南

    原文链接http://www.sxt.cn/info-2730-u-756.html 目录 Spark开发指南 简介 接入Spark Java 初始化Spark Java 弹性分布式数据集 并行集合 ...