2011-09-11 34 views
5

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

在我的实践中,当我不在其父代之外使用嵌入对象时,它非常罕见。我的意思是comments是embedded_in post的常见示例:我需要在更新列表中显示最后一条评论,我需要为current_user显示评论等等。所以评论不能嵌入,否则将会是屁股疼痛。

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

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

回答

3

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

并非所有情况下嵌入良好适合,你确实是在'在某些情况下与屁股疼痛'的真实情况。你不需要嵌入一切!在你的情况下,创建单独的收集评论或..

在nosql世界还有另一个很好的已知概念:denormalization

我需要拿出最后意见在更新

好清单,如果你需要最新的更新您可以将最后评论到更新集合快速显示它。

我需要展示征求意见CURRENT_USER

好,使嵌入用户的意见为用户对象。

顺便说一下,反规范化通常是异步过程,因为将一个对象写入多个集合可能会导致写入性能问题。

希望我的回答能给你一些想法。

+0

是的,它做到了!谢谢:) – fl00r

+0

@ fl00r:不客气。 –