gpt4 book ai didi

mongodb - 文档数据库中的继承?

转载 作者:IT老高 更新时间:2023-10-28 13:06:09 25 4
gpt4 key购买 nike

我想知道,因为我在 pdf“[noSql] 权威指南”和“beginning [noSql]”中搜索了“继承”这个词,但我没有找到任何东西?我错过了什么吗?因为我正在使用 hibernate 和 mysql 进行 tablePerHierarchy 继承,所以在 [noSql] 中是否出于某种原因不推荐使用它?

(把[noSql]换成你喜欢的“not only sql”数据库)

最佳答案

我知道这个答案有点晚了,但对于 MongoDB,您可能会看到一些稍微不同的东西。

Mongo 是无模式的,因此“tablePerHierarchy”的概念不一定有用。

假设如下

class A
property X
property Y
property Z

class B inherits from A
property W

在 RDMS 中你可能会有这样的东西

table A: columns X, Y, Z
table B: columns X, Y, Z, W

但是 MongoDB 没有模式。因此,您不需要以这种方式构造数据。相反,您将拥有一个包含 A 或 B(或 C...)类型的所有对象(或“文档”)的“集合”。

所以你的收藏将是一系列这样的对象:

{"_id":"1", "X":1, "Y":2, "Z":3}
{"_id":"2", "X":5, "Y":6, "Z":7, "W":6}

您会注意到,我将 A 类型的对象存储在 B 类型的对象旁边。MongoDB 使这非常容易。只需从集合中提取一个文档,它就会“神奇地”拥有所有适当的字段/属性。

但是,如果您有“数据对象”或“实体”,则可以通过添加类型让您的生活更轻松。

{"_id":"1", "type":"A", "X":1, "Y":2, "Z":3}
{"_id":"2", "type":"B", "X":5, "Y":6, "Z":7, "W":6}

这使得编写用于加载对象的工厂类变得更加容易。

关于mongodb - 文档数据库中的继承?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3040584/

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