【问题标题】:Mongo Collection or DocumentMongo 集合或文档
【发布时间】:2019-07-05 03:21:15
【问题描述】:

我正在考虑从 Filemaker 切换到 MERN 应用程序的可能性。我了解 NoSQL 数据库的基本概念,但它是一种非常不同的思维方式。我已经在 MySQL 中重新创建了我需要的东西,但是 Mongo DB(或 Firestore)让我很感兴趣。

该应用程序用于记录客户的锻炼情况。每个人都有很多锻炼,每次锻炼都有很多项目。我不确定在 Mongo 中执行此操作的最佳方法。

我在为所有锻炼使用集合之间,每个锻炼都有他们所做的所有项目(练习)的数组。或者将这些项目作为一个单独的集合,并使用锻炼 ID 将它们链接起来。

我在这里寻找的最重要的东西可能是查看某人进行练习的所有实例的能力。据我了解,如果我按照第一种方式进行操作,每条记录都会被拉出。但第二个只会返回该集合中与 exercise_ID 和 person_ID 匹配的文档。

对于这样的项目,哪种方法最好?

【问题讨论】:

    标签: node.js reactjs mongodb


    【解决方案1】:

    第二个选项是在您的案例中存储数据的最佳方式。您始终可以将不同集合中的项目分开并将项目 ID 存储在您的主集合中,即此处的锻炼。

    如果您担心查询(加入)它们,mongoose 提供“填充”以使用 id 作为引用在多个集合之间获取数据。

    或者您也可以使用聚合查询来实现相同的目的。

    希望这会有所帮助:)

    【讨论】:

      【解决方案2】:

      我认为对我来说最好的选择是在每次锻炼中包含一组项目,因为这基本上是使用非 SQL 数据库的目的,以更快地访问数据。 但是有一个基本规则..如果您认为每次锻炼的项目数组会增长得非常快并且会变得如此之大..那么最好为这些项目单独收集。如果不是......然后将它们保存在一个数组中。

      希望这对您有所帮助.. 问候! :)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-03-28
        • 2021-04-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多