gpt4 book ai didi

java - MongoDB 是否会复制具有相同数据的子文档?

转载 作者:行者123 更新时间:2023-12-02 06:21:24 24 4
gpt4 key购买 nike

我对 MongoDB 完全陌生,正在考虑使用 JDO 作为不可知层将我的基本持久性代码(对于许多项目)移至 MongoDB。所以我是从一个喜欢使用 beans 作为基本模型单元的 java 开发人员的角度来问这个问题的。

我的问题是关于子文档以及它们是独立存在还是由 MongoDB 内部合并。即,如果我有这样的域结构:

家庭 - 人员集合

Person
- name
- address

Address
- street
- postcode

如果我有一个家庭的文件,它将有多个人,但每个人都有相同的地址。

每个地址是否是 MongoDB 中不同且独立的实体(即使它们是相同的“类”并且具有相同的值。或者 Mongo 是否以某种方式识别它们引用的是同一实体并在内部为每个地址存储一个 UID)地址?

更重要的是。如果我更新一个地址的邮政编码,是否意味着家庭地址子文档中的每个成员都会反射(reflect)这一更改?

似乎如果确实如此,那么它就会误入关系领域,但如果没有这样的引用,我会看到可怕的低效率的出现?

最佳答案

Mongo 不会为您删除这些子文档的重复项,不会。如果您想要规范化该数据,则需要将这些地址保存到不同的集合中(理想情况下),并在保存封闭文档时将 DBRef 存储到这些文档中。使用吗啡或 spring-data 之类的东西可以帮助您管理这些引用。

关于java - MongoDB 是否会复制具有相同数据的子文档?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20975763/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com