我正在构建一个web应用程序,我花了很长时间来处理相关文档之间的更新。MongoDB在帖子和评论之间自动更新
例如,我有'任务'文档和'用户'文档。任务完成后,将为其分配多个用户。因此,
taskA.assigned = ["1321231fsdfsdf"(userA's _id), "12312313asdasdasd"(userB's _id)]
userA.tasks = [..., "1231321"(taskA's _id),...]
userB.tasks = [..., "12313211"(taskB's _id),...]
当谈到创建任务时,我可以很好地处理它。但是,当我要编辑任务时,它变得非常棘手。如果用户B从taskA中删除,我必须删除userB的id并转到userB的tasks属性并删除taskA的id。
有没有什么捷径和自动处理方法?感谢您抽出时间阅读它。让我知道如果我太模糊,我会添加更多细节。
您的问题是因为您设计数据库的方式。您选择保留不同文档中的重复值。这将有助于更快地读取数据库,但写入时必须小心以保持数据库的一致性。如果集合之间存在许多关系,写操作在某些点上可能会很乏味,就像现在一样。 为了解决这个问题,你可以考虑重新设计你的数据库结构与集合之间的关系。 – Khang
@Khang是啊,那就是我的感受。我知道我所做的事情有问题。那么,我现在应该怎么做。顺便说一下,据我所知,当我使用mysql时,有一个非常方便的方法来处理这个问题。例如,在帖子和评论之间建立关系,如果帖子被删除,则与帖子相关的所有评论也将被一起删除。我正在研究mongodb是否具有相同的功能,但我对此持怀疑态度。有没有人知道如何在MongoDB中做到这一点? – supergentle