今天练手的时候遇到一个问题,mongodb里面有几个集合,我修改了其中自己的用户名,但其他集合里面已经存了旧的数据用户名,有没有什么办法,可以让我修改了自己用户名的时候,其他集合的旧数据也跟着改变?
除了把其他几个集合单独抽出来修改这个方法外。。。。
回复 (11)
C
应该是没有别的办法了吧
D
我在想 假如相关的集合有好多的话,用户只是修改一个用户名,那得改好多数据啊?
C
引用 dean5277我在想 假如相关的集合有好多的话,用户只是修改一个用户名,那得改好多数据啊?
@dean5277 嗯,MongoDB确实不能到这一点,但是可以从数据库的设计上进行一定的规避。假设用户名是有可能会比较频繁变化的内容,那么应该在相关的集合中去保存用户的id,查询数据的时候,通过用户的id获取用户名(类似关系数据库的外键)。
D
@crystaldust 非常谢谢啦,的确是个好方法。
C
引用 dean5277@crystaldust 非常谢谢啦,的确是个好方法。
@dean5277 不客气,加油哦~
H
思路如楼上,存取一个恒定的userId,对于用户名可以建立一张表格对应。 OR:可以根据键值整体updateMany,可以做到。(这种设计思路不太好)
B
mongodb 不是有关联吗? 关联不严重的话是可以用的
D
我觉得最简单的方法还是把这种需求的数据交给关系型数据库
D
可以参考下这个: 一对多关系建模: 文档引用模式
S
你那个是关系型数据库的思想。
D
放假一上来看到那么多回复,好感动,你们的方法我都会去学习下。
参与回复
登录后即可参与回复。登录