当前位置: 首页 > 知识库问答 >
问题:

Spring Data MongoDB-嵌入式文档作为其他文档的引用

贲绪
2023-03-14
{
    _id: ObjectId("4fed0591d17011868cf9c982"),
    _class: "User"
    ...
    addresses: [ {
        _id: ObjectId("87KJbk87gjgjjygREewakj86"),
        _class: "Address",
        ...
    } ]
}
{
    _id: ObjectId("gdh60591d123487658cf9c982"),
    _class: "Order",
    ...
    address: ObjectId("87KJbk87gjgjjygREewakj86")
}

共有1个答案

林烨烨
2023-03-14

您的案例让我想起了典型的关系方法,在开始使用面向文档的DBS时,我也是这种方法的受害者。示例中的所有实体都被引用,不再有冗余。

您应该开始习惯放下标准化,开始重复数据的想法。在许多情况下,很难确定哪些数据应该被引用,哪些应该被嵌入。不过,你的情况很清楚。

在不知道整个域模型的情况下,地址似乎是值对象的完美候选对象。不要维护address集合,将其嵌入用户对象中。在order中,您可以对用户进行引用,这将隐式地提供address对象,并且可能有意义,因为订单是由用户进行的。

 类似资料:
  • 您可以在Perl模块和脚本中嵌入Pod(Plain Old Text)文档。 以下是在Perl代码中使用嵌入式文档的规则 - 使用空行开始您的文档,在开头使用a = head1命令,然后使用= cut结束它 Perl将忽略您在代码中输入的Pod文本。 以下是在Perl代码中使用嵌入式文档的简单示例 - #!/usr/bin/perl print "Hello, World\n"; =head1 H

  • 了解更多有关于Giojs 基本元素 阅读markdown格式的API文档 APIs 如果你有兴趣参与Giojs开发,不妨先从 开发指南 中熟悉一下Giojs的开发规范

  • 本文向大家介绍SpringDataMongoDB多文档事务的实现,包括了SpringDataMongoDB多文档事务的实现的使用技巧和注意事项,需要的朋友参考一下 一、安装MongoDB4.0.3(××) 1.1、官方安装文档 https://docs.mongodb.com/manual/tutorial/install-mongodb-on-red-hat/ 1.2、tar.gz包下载地址 h

  • 我用Mongoose定义了以下模式: 我尝试执行以下查询: 查询不响应,并且从不进入回调函数。这很奇怪,因为这种类型的查询(搜索两个字符串字段)适用于我定义的另一个模式,但不适用于这个模式。另一种模式更简单,不需要任何嵌入文档。 [更新] 我试过你的建议,但不行。我认为只有两个选择: 1.我发布的模式有问题。 多谢!

  • 有人知道谷歌电子表格嵌入URL参数是否有任何官方文档吗? 也就是说,给定一个来自Google表单的嵌入URL,如下所示:https://docs.google.com/a/aicr.org/spreadsheet/pub?key=0AhExuVBhVYT1dGxxejBmUHAzYUhGb25veTRkdW1YekE 争论是做什么的? 还有哪些参数是默认情况下不包括的? 经过大量的挖掘和寻找,我发

  • 问题内容: 在Mongoose文档中的以下地址:http : //mongoosejs.com/docs/embedded- documents.html 有一条声明: DocumentArrays具有一个特殊的方法ID,该ID通过其_id属性(每个嵌入式文档获取一个)来过滤嵌入式文档: 考虑以下代码段: 我的问题是: 文档是否正确?如果是这样,那么我如何找出“ my_id”是什么(在示例中),以