【问题标题】:Best way to store data in mongodb在 mongodb 中存储数据的最佳方法
【发布时间】:2017-07-01 17:53:05
【问题描述】:

我正在开发一个有很多关系的项目。我想知道哪一种是存储数据的最佳方法。

  1. 创建 child_model,然后将 _id 推送到 parent_model。
  2. 在父模型中创建 child_model,我们推送的是整个数据而不仅仅是 _id。

【问题讨论】:

  • 事实是没有“最好的方法”。对于您的应用程序如何使用数据,只有一个真正“最佳”。基本区别在于您是否大部分时间都同时读取父数据和子数据,并且在某种程度上也以这种方式进行更新。或者另一方面,父母和孩子的分离很重要,无论是孩子的数量,还是这些孩子条目的更新并发性对您来说真的很重要。如果没有一个非常详细和具体的用例,这真的不是一个或另一个答案。
  • 我想要 DDD 方法。在不同的集合中分离域实体。但是值对象必须是一个文档中实体的一部分。这是有效的,因为大多数时候你需要阅读完整的实体。当然,这不是一条直截了当的规则

标签: node.js mongodb mongoose nosql


【解决方案1】:

没有“最好的方法”,有时两者都是最好的。这实际上取决于您的用例和以下问题:

  • 您是否有时需要在不加载父母的情况下单独加载或存放您的孩子? -> 单独的模型。
  • 或者当您需要孩子时,您是否需要始终加载父母? -> 同款
  • 您的孩子可以永远只属于一个父母吗? -> 同款
  • 是否会有多个父对象或其他对象引用一个子对象? -> 单独的模型
  • 是您孩子的一生总是与您父母的一生相同 -> 相同的模型
  • 生命周期可以不同吗?您的孩子是否会与您的父母“分离” -> 单独的模型。

考虑这些问题并决定什么最适合您的用例。

【讨论】:

    猜你喜欢
    • 2020-07-09
    • 2021-10-22
    • 1970-01-01
    • 1970-01-01
    • 2012-12-21
    • 2011-09-14
    • 2011-04-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多