Mongodb中的集合关系(node.js)

时间:2016-07-19 14:35:03

标签: mongodb

我们说我有一个名为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" //等

或其他解决方案?

1 个答案:

答案 0 :(得分:1)

mongoDB docs中有一整节讨论嵌入文档与在单独集合中引用它们的优缺点。
它实际上取决于场景和要求(简而言之:嵌入式文档允许原子操作,并且通常会有一些性能提升,但可能会导致重复)。

在您的特定情况下,我很可能会使用嵌入式的朋友ID数组(您最后显示的选项),而不是使用单独的Friends集合来存储朋友的ID,无论如何都不会导致数据重复。