By now it is well known that the MongoDB is Schemaless. We need to understand what is that makes the MongoDB beahve as a schemaless database.

到目前为止,众所周知MongoDB是无模式的。 我们需要了解什么使MongoDB成为无模式数据库。

Every RDBMS database will possess a structure with respect to persisting the data. So, when the database needs to be modified, say a column of particular table needs to be modified(changing the datatype) or adding/removing a column from a table, we have to mention, what type of data this column will hold.

每个RDBMS数据库都将具有持久存储数据的结构。 因此,当需要修改数据库时,比如说需要修改特定表的一 (更改数据类型)或从表中添加/删除一列,我们不得不提一下,该列将保存哪种数据类型。

But, MongoDB is a document based database, which does not use the concept of tables and columns, instead of which it uses the concept of documents and collections. All the referential data with respect to different modules will be stored as one collection. More over the BSON data structure used by MongoDB can easily have varying sets of data and fields with different types.

但是,MongoDB是基于文档的数据库,它不使用表和列的概念,而是使用文档和集合的概念。 关于不同模块的所有参考数据将存储为一个集合。 MongoDB使用的BSON数据结构更多,可以轻松拥有具有不同类型的数据和字段的不同集合。

When we say schemaless, we actually mean dynamically typed schema, as opposed to statically typed schemas as available in RDBMS(SQL) databases.

当我们说无模式时 ,实际上是指动态类型的模式 ,而不是RDBMS(SQL)数据库中可用的静态类型的模式。

JSON is a completely schema free data structure, as opposed to XML which allows you to specify XSD if you need.

JSON是完全无模式的数据结构,与XML相反,XML允许您在需要时指定XSD。

Whenever we store something in MongoDB, we know what we are storing, its a String, Int or a custome Object in JSON format, and as soon as we try to store it in a collection, MongoDB accepts it as a JSON formatted data.

每当我们将某些内容存储在MongoDB中时,我们都知道要存储的内容,即JSON格式的String,Int或custome对象,一旦尝试将其存储在集合中,MongoDB就会将其接受为JSON格式的数据。

And when you read somewhere that data migration is easy in NoSQL databases, its also not absolutely true. There are certain scenarios where document based databases like MongoDB proves to be better, but there are scenarios where SQL based databases have the upper hand. For example : data processing while migrating, takes longer in case of NoSQL due to data duplication, while in a Normalised SQL database, minimal data duplication is there.

而且,当您在NoSQL数据库中读到数据迁移很容易的地方时,它也不是绝对正确的。 在某些情况下,诸如MongoDB之类的基于文档的数据库被证明是更好的,但是在某些情况下,基于SQL的数据库占据了上风。 例如:迁移时的数据处理,由于数据重复而在NoSQL情况下花费的时间更长,而在规范化SQL数据库中,那里的数据重复最少。

翻译自: https://www.studytonight.com/mongodb/is-mongodb-really-schemaless

MongoDB真的是无模式的吗?相关推荐

  1. Uber无模式数据存储

    Uber无模式数据存储 设计无模式.Uber工程师使用MySQL定制数据库,允许我们从2014向后扩展.这是无模式三部分系列的第一部分. 在项目Mezzanine中,我们描述了如和从单一Postgre ...

  2. django 声称图表_停止声称您正在使用无模式数据库

    django 声称图表 在宣传MongoDB时,MongoDB的论点之一是MongoDB是"无模式"数据库 : 为什么没有模式? MongoDB是JSON样式的数据存储. 存储在数 ...

  3. 第七章:无模式对话框 和 Windows通用对话框类

    第七章:无模式对话框 和 Windows通用对话框类 1,[无模式对话框]在它处于激活状态下还允许用户在(同一个应用程序中)其它地方工作. [通用对话框]则是C++和一组Windows的实用对话框之间 ...

  4. PADS Layout中的 无模式命令

    无模式命令: AA:任意角走线 AO:正交走线 AD:对角线走线 ,以上三个也可以通过preference中design页line/trace angle项进行设置 C:  反显显示背景,可用于查看负 ...

  5. WPF——自动关闭无模式窗口

    目录 介绍 无模问题的解决方案 介绍 无模式的窗口--它们非常方便.它们方便使用的东西太多了,无法迭代,所以你只能相信我的话.无模式窗口的问题在于,除非您在关闭主窗口之前(或之时)明确关闭它们,否则即 ...

  6. TDengine:无模式写入行协议的四种方式

    小 T 导读:为了在数据采集项频繁变动的情况下保证用户仍然能够顺利地完成数据记录工作,TDengine 提供了三种无模式写入协议,分别是 InfluxDB Line 协议.OpenTSDB Telne ...

  7. mysql 存储模式_FriendFeed 如何使用 MySQL 来存储无模式的数据

    背景 我们使用MySQL存储了FriendFeed的所有数据.数据库随着用户基数的增长而增长了很多.现在已经存储了超过2.5亿条记录与一堆涵盖了从评论和"喜欢"到好友列表的其他数据 ...

  8. java存储json到mongo_使用spring在mongodb中存储JSON模式

    我是 Spring数据和mongodb的新手.我有一个表示 JSON模式的 JSON对象,我需要使用spring数据将其存储在mongodb中.但JSON模式的问题是JSON Schema的结构是动态 ...

  9. 返璞归真的Open×××的p2p模式

    曾几何时,Open×××的server模式蒙蔽了人们的双眼,被视为是一个巨猛的革新,于是一个Open×××服务器可以支持多个Open×××客户端了,server模式下的c2c模式更是加剧了我们向ser ...

最新文章

  1. matlab 图片转换
  2. Windows系统漏洞学习总结
  3. 延期毕业,只因实验用的鱼被野猫偷吃了………
  4. 关于如何将动作识别数据集UCF101中的每一小段视频按类别分割成一帧帧图片
  5. java linux 写文件_Java读写文件
  6. 聚合支付系统设计(一)
  7. JS 实现blob与base64互转
  8. 微信小程序一定要设置服务器域名,微信小程序 设置域名 必须是https么
  9. Spark 提交执行源码学习
  10. 3dmax顶点动画导入unity_Mesh Vertex Animation In Unity | Unity中顶点动画
  11. hadoop-ResourceManager-HA配置
  12. matlab牛顿法求区间根程序,MATLAB用二分法、不动点迭代法及Newton迭代(切线)法求非线性方程的根...
  13. java多线程使用业务场景_Java多线程使用场景
  14. 谷歌地图下载器中“地图艺术照”
  15. 【考研英语——刘晓燕语法、简单句和长难句笔记】
  16. appium+夜神模拟器模拟登录、退出app代码
  17. unable to write file .git/objects/8a/5a043a43c0dad68ceb65f5a7bd9f7e7a70078b: Permission denied
  18. 投资理财-股市是称重机吗?
  19. matlab 蔡旭晖,MATLAB基础与应用教程(第2版)/蔡旭晖等
  20. Fritzing介绍

热门文章

  1. Android自定义View——实现理财类APP七日年化收益折线图效果
  2. CodeMirror插件,鼠标光标与代码定位错误BUG处理
  3. #今日说码栏目#第十六集
  4. 计算机没有安装显卡驱动能显示桌面吗,电脑桌面右键没有显卡设置怎么添加
  5. Vue 中CodeMirror使用方法
  6. 程序员的聊天养成手册
  7. 非线性可视化(4)庞加莱截面
  8. Hdu 3255 Farming(长方形体积并)
  9. 绝!2D素材3D效果!
  10. 备份一哈如屎一样的sql