在具有大量实体(50+)相互连接的系统中使用mongodb是否有任何意义,例如在CRM中。任何“成功故事”?
对于某种分析系统,需要从大量记录中进行密集编写和快速选择。
答案 0 :(得分:0)
提出这样一个公开问题的建议肯定很难;但是,您可以分析MongoDB相对于其他数据库的一些优势,很可能您正在考虑使用Mongo作为Oracle或SQL Server等关系数据库的替代方案。
从http://mongodb.org您可以看到主要特征......
面向文档的存储:这基本上意味着您可以拥有代表数据结构的单个或多个文档。这里一个非常重要的想法是架构动态,即您可以添加更多属性而无需更改数据库。对于为系统增加灵活性非常有用。
完全索引支持:我们不会指望对指数的全面支持,对吗?
复制和高可用性;分片:非常关键的可用性,灾难恢复和保证 与您的系统一起成长的能力。
查询:同样,非常关键的要求。需要确保您考虑动态架构。你需要考虑进去 您的查询没有为所有文档定义某些属性 (还记得动态模式吗?)
地图/缩小:非常有用 分析。建议用于聚合大量数据。 应该脱机使用,这意味着,您不要针对a运行实时查询 map / reduce函数,否则你会坐一会儿 等候。但是在您的系统上运行批量分析非常棒。
GridFS :存储二进制数据的好方法。自动为您的文件生成MD5,将它们分成块,然后添加 元数据。您的文件将保留在您的数据库中。
此外,地理位置指数很好。您可以定义lon,lat属性并对其进行搜索。
现在您需要了解这些功能是否适合您的需求,或者您更愿意使用熟悉的关系系统。
在进入解决方案之前,您应该尝试并构建一些原型。您很快就会看到您在设计中遇到的挑战。
希望这有帮助。