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