Mongodb mongo作为复杂项目的主要数据库

Mongodb mongo作为复杂项目的主要数据库,mongodb,collections,schema,Mongodb,Collections,Schema,在一个有50多个实体相互连接的系统中使用mongodb是否有意义,例如在CRM中。有成功的故事吗 对于某种类型的分析系统,需要密集的写作和从大量记录中快速选择。对于这样的开放性问题,很难提供建议;但是,您可以分析MongoDB相对于其他数据库的一些优势,很可能您正在考虑将Mongo作为关系数据库(如Oracle或SQL Server)的替代品 从中可以看出主要特点 面向文档的存储:这基本上意味着您可以拥有一个或多个表示数据结构的文档。这里一个非常重要的想法是模式是动态的,即您可以添加更多属性,而

在一个有50多个实体相互连接的系统中使用mongodb是否有意义,例如在CRM中。有成功的故事吗


对于某种类型的分析系统,需要密集的写作和从大量记录中快速选择。

对于这样的开放性问题,很难提供建议;但是,您可以分析MongoDB相对于其他数据库的一些优势,很可能您正在考虑将Mongo作为关系数据库(如Oracle或SQL Server)的替代品

从中可以看出主要特点

面向文档的存储:这基本上意味着您可以拥有一个或多个表示数据结构的文档。这里一个非常重要的想法是模式是动态的,即您可以添加更多属性,而无需更改数据库。为系统增加灵活性非常有用

完全索引支持:我们不会期望对索引的支持低于完全索引,对吗

复制和高可用性;切分:对于可用性、灾难恢复和保证 与您的系统一起成长的能力

查询:同样,非常关键的需求。需要确保您考虑了动态模式。你需要考虑进去。 您的查询表明,某些属性不是为所有文档定义的 还记得动态模式吗

Map/Reduce:对于 分析。建议用于聚合大量数据。 应该脱机使用,也就是说,您不需要对 map/reduce功能,否则您将坐一会儿 等待。但在您的系统上运行批处理分析非常好

GridFS:存储二进制数据的好方法。自动为您的文件生成MD5,将其拆分为块,并可以添加 元数据。您的文件将保留在数据库中

此外,地理位置指数也很高。您可以定义lon、lat属性,并对这些属性进行搜索

现在由您来决定这些特性是否适合您的需要,或者您更愿意使用一个众所周知的关系系统

在开始解决方案之前,您应该进行实验并构建一些原型。您将很早看到在设计中会遇到哪些挑战


希望这能有所帮助。

如果没有更多细节,很难回答,通常大多数关系都可以用嵌入文档替换,但这取决于具体情况。所以,多解释得到具体的答案。