javascript - 如何在 MongoDB 中建模数据?

标签 javascript mongodb

我是非关系数据库新手,因此我想知道如何对数据进行建模。我的项目是一个简单的待办事项应用程序,包含项目和任务。请参阅下面的内容了解我目前的做法,并让我知道它是否正确或我可以做得更好:

projects: [{
   _id: 23423423423,
   name: projectName1,
   tasks: [{
               _id: 3423423423423324,
               title: "do something",
               isCompleted: "false"
          },
          {
               _id: 23223423423324,
               title: "do something else now",
               isCompleted: "false"
          },
          {
               _id: 232234233423423,
               title: "i have completed this",
               isCompleted: "true"
          }]
  },
  {
   _id: 2342123123,
   name: projectName2,
   tasks: [{
               _id: 3423423423422314,
               title: "build this",
               isCompleted: "false"
          },
          {
               _id: 2322342342234234,
               title: "build something else now",
               isCompleted: "false"
          },
          {
               _id: 2322342323423423,
               title: "i have completed building this",
               isCompleted: "true"
          }]
  }

最佳答案

假设 projects 实际上是集合名称,那么这看起来不错,如果不是,那么为每个项目创建一个文档并使用 user_id 将它们链接在一起可能会更高效> 某种形式。

您可能需要记住的一件事是您在特定时间段内获得了多少新任务或任务更新。原因之一是,如果您的子文档 tasks 随着时间的推移持续增长,您可能会面临某些碎片问题( http://www.10gen.com/presentations/storage-engine-internals 可以解释更多),如果这成为问题(我非常怀疑它会出现问题),您可以使用 2 个大小分配的幂:http://docs.mongodb.org/manual/reference/command/collMod/#usePowerOf2Sizes

但是,总的来说,这似乎是正确的。

关于javascript - 如何在 MongoDB 中建模数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15951242/

相关文章:

javascript - 同步加载外部 JavaScript

javascript - 每次使用javascript在其他页面上单击按钮时如何自动增加一个数字

python - pyspark:返回不完整的 URI 错误

javascript - 为什么console.log会无限循环直到溢出,而document.write不会

javascript - 使用 OAuth 2.0 和客户端 ID 从 Google chrome 扩展获取辅助 ID 的授权 token

javascript - jQuery AJAX 没有得到 PHP 的响应

mongodb - 如何在云运行上为 docker 容器关联持久卷

mongodb - 基于范围的分页mongodb

node.js - 将图像保存到数据库

mongodb - 从子文档中删除所有 _id 字段