在MongoDB中,如果不使用嵌入式文档也能达到同样的目的,那么嵌入式文档的目的是什么?

In MongoDB, what is the purpose of embedded documents if the same thing can be achieved without using them?

例如

而不是名为 COLUMN_1 的字段,它包含一个包含字段 A、B 和 C 的嵌入文档。

为什么不使用名称为 COLUMN_1_ACOLUMN_1_BCOLUMN_1_C.

的 3 个单独字段

在 mongoDB 中,您更喜欢以自然存在的方式处理文档 ,当然你可以创建每次都可以翻译的例程和assemble/disasemble文档:

  COLUMN_1:{A:X,B:Y,C:Z}

至:

 COLUMN_1_A:X,COLUMN_1_B:Y,COLUMN_1_C:Z

但这是您不想每次都做的额外工作,您是一个懒惰高效的开发人员,更喜欢按使用方式存储您的 json 文档,除非有特定的用例这样做很有意义...... :)

另请注意,最多可以嵌入 100 个级别,但最大文档大小仍限制为 16MB,因此在您的文档模型中,您不应将所有数据库嵌入到单个文档中...

当您需要性能时,您可以添加索引并优化查询,这样您最常搜索的数据就会保留在内存中,如果您的字段是嵌入的,或者如果它们没有被索引,则在根目录中没有太大区别...