分享几个我的 MongoDB 服务案例 - 持续更新
【安装服务】MongoDB Installation and Configuration Service 背景 国内某传统零售行业客户,在进行数字化升级,计划使用 MongoDB 作为业务系统(用户画像和标签管理)的数据库,以此更高效地在国...
【安装服务】MongoDB Installation and Configuration Service 背景 国内某传统零售行业客户,在进行数字化升级,计划使用 MongoDB 作为业务系统(用户画像和标签管理)的数据库,以此更高效地在国...
MongoDB中的一些最新特性(如多文档ACID事务)需要对底层的WiredTiger存储引擎中进行基础性的增强。 在这个由六篇文章组成的系列中,我们将一起看一下在MongoDB中使得数据库核心可以支持事务的一些变化。这些变化包括: Mon...
现在到了我们总结使用模式构建系列的时候,这是一个很好的机会回顾一下这个系列涵盖的模式所解决的问题,并着重复习每个模式所具有的一些好处以及做出的权衡。关于模式设计,最常见的问题是“我正在设计一个要做某某事情的应用程序,如何对数据建模?”正如我...
有一种说法,生命中唯一不变的东西就是变化。这同样适用于数据库模式。我们会想要获取我们曾经认为不需要的信息。或者一些新上线的服务需要包含在数据库记录中。不管变更背后的原因是什么,一段时间之后,我们不可避免地需要对应用程序中的底层模式设计进行更...
数据库,例如MongoDB,非常擅长查询大量数据并进行频繁更新。然而,在大多数情况下,我们只针对数据的最新状态执行查询。那如果有些场景下我们需要查询数据的以前状态呢?如果我们需要一些文档的版本控制功能怎么办?这就是我们可以使用文档版本控制模...
摘要 为了更好地支持基于逻辑时钟和混合逻辑时钟的分布式事务,WiredTiger从3.0版开始引入时间戳事务(timestamp transaction)。在本文中,我们将时间戳事务简称为tsTxn。在第一章,我们会说明WiredTiger...
MongoDB最明显的优势之一就是文档数据模型。它在模式设计和开发周期中均提供了很大的灵活性。用MongoDB文档可以很容易地处理那些不知道之后会需要哪些字段的场景。然而,有些时候当结构是已知的,并且能够被填充或扩充时,会使设计简单得多。这...
到目前为止,我们讨论的许多设计模式都强调省去JOIN操作的时间是有好处的。那些会被一起访问的数据也应该存储在一起,即便导致了一些数据重复也是可以的。像扩展引用(Extended Reference)这样的设计模式就是一个很好的例子。但是,如...
假设现在有一个相当规模的城市,大约有3.9万人。人口的确切数字是相当不稳定的,人们会搬入搬出、有婴儿会出生、有人会死亡。我们也许要花上整天的时间来得到每天确切的居民数量。但在大多数情况下,39,000这个数字已经“足够好”了。同样,在许多我...
贯穿整个《使用模式构建》,我希望你已经了解到一件事,即模式是什么样子取决于数据的访问方式。如果我们有许多相似的字段,属性模式可能是一个很好的选择。为了适配一小部分数据的访问会极大地改变我们的应用程序吗?也许异常值模式是值得考虑的。还有一些模...