我什么时候应该使用mongoDB而不是关系数据库

时间:2018-12-08 10:39:56

标签: mysql node.js mongodb express mern

我已经完成了关于NodeJS/ExpressReactJS/Redux的udemy课程,有些课程是MERN STACK,我确实很喜欢。但是,唯一的缺点是讲师没有真正的解释是选择MongoDB。在学习这些课程之前,我始终将PostgreSQLMariaBD用于我的所有项目持久层。现在我只使用MongoBD在所有这些课程中,都不知道哪种情况是最佳选择。所有讲师都说,由于数据存储为json json数组,因此很容易解析,因为它与Javascript自然兼容JSON format。我真的很想了解使用Mongo而不是relationnal database的技术原因,或者不按照任何给定的项目要求而不是仅仅因为指导员而使用它的原因

4 个答案:

答案 0 :(得分:2)

我曾经在SQL和MongoDB中工作过。

MongoDB

From my experience MongoDB is best suitable when you follow agile methodologies 
wherein you don't really know what your JSON object will have to contain.

SQL

SQL will be best suitable where JSON object is not going to be changed, like 
for bank projects, where you know the exact format of JSON which is never going 
to be changed.

DIFF

Why I am saying this is, whenever we need to add some extra fields or need to 
link some fields with primary, foreign keys it would be pain and wouldn't know 
what could go wrong.

Wherein in MongoDB if you need to reference some field you will just need to 
add key ref with that field and you are done.

MongoDB

MongoDB would be great when one of your key from one JSON object is to be 
referenced to mutiple JSON object by just adding that field name in ref (ref: 
'user')
  

请对此答案进行投票,以便有需要的人找到此答案,并获得MongoDB最适合他们的时间。

答案 1 :(得分:1)

根据我的个人经验,当项目有点像社交媒体,必须维护帖子,评论,喜欢,阻止,取消阻止时,我将使用SQL。我希望你能明白。

Mongo Db也可以用于以上项目类型,但是其聚合变得令人痛苦且难以理解。

Mongo Db适用于除社交媒体之外的所有项目。再次根据我的经验。

答案 2 :(得分:1)

我认为在以下情况下首选SQL:

  • 关系完整性(数据完整性)至关重要
  • 数据经常更新
  • 实体之间存在清晰和/或牢固的关系

MongoDB更适合:

  • 水平缩放/分片
  • 复制SQL数据以避免在生产中进行昂贵的查询(某些替代方法可能更好)

我会说,当不确定使用SQL时。从SQL迁移到NoSQL比改变主意要容易得多。

答案 3 :(得分:0)

当您拥有大量无模式数据时。 当您的数据和用户将无限增长并且您需要可扩展的云数据库解决方案时。 当您需要在CRUD的某些方面提高性能时。 当您的软件堆栈基于JS时。 您可以查看此youtube视频https://youtu.be/K8xsuFgCRkU

中的其他原因