MongoDB:使用嵌入对象的好处

fl0*_*00r 6 mongodb mongoid

使用嵌入对象有什么好处?

在我的实践中,当我不在其父级之外使用嵌入式对象时,这是非常罕见的.我的意思是通常的例子comments是embedded_in post:我需要在更新列表中显示最后的注释,我需要显示current_user等的注释.因此注释不能嵌入或者它将是一个痛苦的屁股.

因此,当我需要使用嵌入对象时,很少有用例.

问题是:为什么我应该使用嵌入式对象,即使在那些罕见的用例中,嵌入有什么好处?

And*_*ich 5

嵌入式对象是任何nosql数据库的一大好处.通常嵌入=读取性能+可伸缩性.我们以SO为例.你可以在问题中回答问题/答案评论,回答文件.这意味着当您需要显示答案/问题时,您无需加入评论.如果您不需要加入 - 您可以将集合移动到单独的计算机以加速您的应用程序.在关系数据库中,子对象通常成为一个单独的表(非规范化除外).在我的实践中,我需要嵌入文档的情况非常多.

但是并非所有嵌入良好身体的情况都适合在某些情况下使用ebedding进行"屁股疼痛".你不需要嵌入一切!在您的情况下,只需为评论创建单独的集合或..

在nosql世界中还有另一个众所周知的概念:非规范化.

我需要在更新列表中显示最后的评论

好的,如果您需要最新的更新,您可以在更新集合中插入最后的注释以快速显示它.

我需要为current_user显示注释

好的,将用户注释嵌入到用户对象中.

BTW,非规范化通常是异步过程,因为将一个对象写入多个集合可能会导致写入性能问题.

希望我的回答会给你一些想法.