我正在尝试为工作编写一个小应用程序,以便学习Meteor,除了我正在努力为Mongo中的数据建模之外。我似乎陷入了RDBM心态。我有一组需要每天完成的任务,并且每个任务都会在完成后存储注释。 我一直在考虑创建一个任务表,然后让另一个表包含task_id,date,status和comment字段,但这似乎完全违背了nosql方式?
我想我可以有一个由任务组成的文档,每个任务都有一个只包含日期和注释的子文档?
有没有人有任何想法什么是最有效的模型建模方法。它很简单,但我被困在旧方面!!
非常感谢提前!
答案 0 :(得分:0)
我认为这个问题有不止一个正确的答案。所以把我的方法作为一种选择,而不是唯一的解决方案。
如果你按照这样的方式构建你的任务:
任务:
{
"_id": "ObjectId()",
"task": "string",
"comment": "string",
"dueDate": "date",
"status": "string/bool/number"
}
然后,您可以使用单个查询轻松访问/过滤/操作数据。如果您想将评论与任务分开,并且仅在完成时添加它,您可以使用两个集合:
任务:
{
"_id": "ObjectId()",
"task": "string",
"dueDate": "date",
"status": "string/bool/number"
}
注释:
{
"_id": "ObjectId()",
"taskId": "taskId",
"comment": "string",
}
现在,当您更新数据库中的任务时,您可以从中获取taskId,然后您也可以使用它来插入/更新注释。
这只是冰山一角,你可以有很多选择,如果你想每个任务有多个评论,每个任务不止一个用户,它会更深入。 尝试阅读this article from the mongodb website,可能对您的理解有很大帮助。