mongodb与sql关系型数据比较
摸索了几天,大体也初步算入了mongodb的门,仔细一想,mongodb和传统关系型数据库差别很大了。
传统关系型数据库中,一个数据库有一个或者多个表(Table),表中的数据是称之为记录,一行一行的,每行数据分不同的字段。
举一个容易理解的例子。一个人有姓名,性别,年龄,以及很多张银行卡;
如果使用关系型数据库,我们可能会是使用两张或者更多表来做记录,一张用户表来存用户的基本信息,另一张表通过用户id,和银行卡id,通过多条记录来存此人的多张银行卡对应关系;
那如果是在mongodb中,那就对应一个文件了
举个例子就是这样的数据了
{ Name:'小明',Sex:'男',Age:'25', BankCards:[ ‘123445678','12233333','5555555'] }
所以到目前的mongodb中,它是没有关系这个概念的;
此图反应了mongdb和传统的关系型数据库(mysql,oracle)之间的对比;
应该说是,mongodb存的是一个完整的对象了,这个对象数据是已文档的形式存储的。至于它有什么优点,网上一大片说它优点,这里抓网络内容贴上:
架构:MongoDB是文档型数据库,其中一个集合保存不同的不同的文件。字段的数量,内容和该文件的大小可以是不同于从一个文件复制到另一个。
一个单一的对象是结构清晰
没有复杂的连接
深查询能力。 MongoDB支持动态查询使用基于文档的查询语言,如SQL几乎一样强大的文件
调优
易于规模化:MongoDB是易于扩展
不需要数据库对象的应用程序对象转换/映射
使用内部存储器存储(窗口)工作组,从而实现更快的数据存取
不过缺点有很多,首先:不支持事物,而不会支持这种什么inner join ,left join等这样的关系连接,(因为不是关系型数据库嘛)。还有个我觉得是缺点,占用空间!
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持。如果你想了解更多相关内容请查看下面相关链接
相关推荐
-
mongoDB 实现主从读写分离实现的实例代码
mongoDB主从读写分离 MongoDB官方已经不建议使用主从模式了,替代方案是采用副本集的模式, 点击查看.如果您的环境不符合副本集模式可参考本文,来实现主从读写分离. resources.properties mongodb_read.host=10.0.0.45 mongodb_read.port=27017 mongodb_read.apname=ecsp mongodb_read.username= mongodb_read.password= mongodb_write.host=
-
python读取json文件并将数据插入到mongodb的方法
本文实例讲述了python读取json文件并将数据插入到mongodb的方法.分享给大家供大家参考.具体实现方法如下: #coding=utf-8 import sunburnt import urllib from pymongo import Connection from bson.objectid import ObjectId import logging from datetime import datetime import json from time import mktime
-
mongodb使用c#驱动数据插入demo
Mongodb提供了多种开发语言的驱动,java,python,c++,c# 等,这里选用c#驱动作为测试: 首先上mongo官网下载驱动.Ps:官方网站经常连接不顺利. 还不如直接在vs的nuget管理包中搜索mongoDB.driver. 需要引入的命名空间: using MongoDB.Bson; using MongoDB.Driver; Driver是驱动核心,Bson是和数据格式相关的: 定义一个mongo客户端,一个mongodb,一个数据集合: protected staticI
-
mongodb实现数组对象求和方法实例
前言 mongodb在计算集合数组值时候,我们通常会想到使用$group与$sum,但是如果是数组里面多个json对象,并且还需要根据条件过滤多个对象的内容该如何处理? 现在让我们来实现它,假设mongodb中有个user集合,其数据内容如下: /* 1 */ { "_id" : ObjectId("5c414a6a0847e00385143003"), "date" : "2019-01-18 09", "data
-
Python实现读取SQLServer数据并插入到MongoDB数据库的方法示例
本文实例讲述了Python实现读取SQLServer数据并插入到MongoDB数据库的方法.分享给大家供大家参考,具体如下: # -*- coding: utf-8 -*- import pyodbc import os import csv import pymongo from pymongo import ASCENDING, DESCENDING from pymongo import MongoClient import binascii '''连接mongoDB数据库''' clie
-
mongodb的写操作
使用插入数据命令: >insert 需要注意的是,如果插入一文件(现在理解,nosql 类型的db数据不能说是记录了,它是已文件作为单位,而传统型的关系型数据库,我们说是插入一条记录),如果没有带人_id,那么会自动生成一个唯一的id,这个id好比关系型数据库里的主键一样. 如果是自己指定id,那么必须id是唯一的,这点关系型和nosql型都必须要求的: 数据字段的名字不能包含$ 和. 在敲了一阵发现,擦,我要是再shell里面去编写复杂的插入语句,就shell的这种一行一句,不搞死我去啊.我想
-
Python实现批量读取图片并存入mongodb数据库的方法示例
本文实例讲述了Python实现批量读取图片并存入mongodb数据库的方法.分享给大家供大家参考,具体如下: 我的图片放在E:\image\中,然后使用python将图片读取然后,显示一张,存入取一张(可以注释掉显示图片的语句),通过Gridfs的方式存入图片.代码如下: # --* coding=utf-8 *-- from cStringIO import StringIO from pymongo import MongoClient import gridfs import os imp
-
了不起的node.js读书笔记之mongodb数据库交互
这周的学习主要是nodejs的数据库交互上,并使用jade模板一起做了一个用户验证的网站.主要是遇到了一下几个问题. 1.mongodb版本过低 npm ERR! Not compatible with your operating system or architecture: mongodb@0.9.9 0.9.9只支持linux,darwin,freebsd这几个系统,最新版本已支持wins. 2.nodejs进行insert操作后:无法读取结果 复制代码 代码如下: app.post('
-
c#操作mongodb插入数据效率
mongodb的数据插入速度是其一个亮点,同样的10000条数据,插入的速度要比Mysql和sqlserver都要快,当然这也是要看使用者怎么个使用法,你代码如果10000次写入使用10000次连接,那也是比不过其他数据库使用事务一次性提交的速度的. 同样,mongo也提供的一次性插入巨量数据的方法,因为mongodb没有事务这回事,所以在在C#驱动里,具体方法是InsertManyAsync()一次性插入多个文档.与之对应的是InsertOneAsync,这个是一次插入一个文档: Insert
-
Mongodb读数据操作
Mongodb读数据操作 Mongodb读数据(文档documents)操作有两个方法 >find(); >findOne(); find()方法是最主要的方法,find方法返回一个指向包含查询结果集数据的游标(cursor) 标准命令是:db.collection.find(<query>, <projection> ) 其中<query>相当于sql语句中的where 条件语句: <projection>相当于要取出的字段. 这里要注意的是,
随机推荐
- java实现简单的给sql语句赋值的示例
- 深入Apache与Nginx的优缺点比较详解
- codeigniter中view通过循环显示数组数据的方法
- 谈谈我对JavaScript原型和闭包系列理解(随手笔记9)
- 使用jQuery处理AJAX请求的基础学习教程
- Javascript开发包大全整理
- Javascript的表单验证长度
- MongoDB的安装方法图文教程
- flash/flex/air的一个大问题
- CentOS查询软件包的安装位置
- linux操作系统安装MONO执行C#程序的详解步骤
- Android实现日夜间模式的深入理解
- Android ViewFlipper简单用法解析
- java实现的RC4加密解密算法示例
- 基于Zookeeper的使用详解
- C#实现对文件进行加密解密的方法
- 不使用php api函数实现数组的交换排序示例
- 不错的一篇面向对象的PHP开发模式(简写版)
- Android编程实现禁止状态栏下拉的方法详解
- C语言 数与串之间转换的方法