我们说我有一个名为UserInfo
的集合包含:
userName
:" john doe"
userID
:" 100"
我还有一个名为Friends
的集合包含:
userID
:" 100"
friendID
:" 200"
每个用户可以拥有多个朋友。所以我试图添加另一个:
userID
:" 100"
friendID
:" 300"
等等。
这是正确的方法吗?我需要能够添加和删除用户的朋友。
我可以为UserInfo
想到的另一种方法:
userName
:" john doe"
userID
:" 100"
friends
:" 200,300,400" //等
或其他解决方案?
答案 0 :(得分:1)
mongoDB docs中有一整节讨论嵌入文档与在单独集合中引用它们的优缺点。
它实际上取决于场景和要求(简而言之:嵌入式文档允许原子操作,并且通常会有一些性能提升,但可能会导致重复)。
在您的特定情况下,我很可能会使用嵌入式的朋友ID数组(您最后显示的选项),而不是使用单独的Friends
集合来存储朋友的ID,无论如何都不会导致数据重复。