在Mongo中建模重复任务列表

时间:2018-01-17 18:49:07

标签: mongodb nosql

我正在尝试为工作编写一个小应用程序,以便学习Meteor,除了我正在努力为Mongo中的数据建模之外。我似乎陷入了RDBM心态。我有一组需要每天完成的任务,并且每个任务都会在完成后存储注释。 我一直在考虑创建一个任务表,然后让另一个表包含task_id,date,status和comment字段,但这似乎完全违背了nosql方式?

我想我可以有一个由任务组成的文档,每个任务都有一个只包含日期和注释的子文档?

有没有人有任何想法什么是最有效的模型建模方法。它很简单,但我被困在旧方面!!

非常感谢提前!

1 个答案:

答案 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,可能对您的理解有很大帮助。