MongoDB的建模应用程序数据取决于数据本身,也跟MongoDB的特性有关。比如,不同的数据模型可能提高应用程序的查询效率,提高插入和更新操作的吞吐量,让分片集群更有效的提高分发效率。
这些处理或记录需求的因素,出现在应用程序以外,但是会影响以MongoDB为数据库的应用。当创建数据模型时,在下述场景下需要考虑应用程序的读操作和写操作。
文档增长
更新文档可能会导致文档大小的增加,这些更新包括添加元素到数组,添加新字段到文档中等等。如果文档增长的大小打到了文档允许的最大大小,MongoDB会重新分配磁盘上的文档。重新分配文档会占用比更新文档更长的时间,并且可能会导致文档碎片。尽管MongoDB自动填充文档分配来将重新分配的可能性最小化,但数据建模时应尽可能避免文档增长。