在我的应用程序中有users
. 每个用户可能有很多朋友(其他用户)。如果用户 A 有朋友 B,则用户 B 有朋友 A - 总是。例如,我将不得不查询用户集合以获取用户 A 的所有朋友。而且我还必须为此查询使用地理空间索引,以从用户 A 获取给定半径内用户 A 的所有朋友。
尝试在 MongoDB 中“建模”这种结构时遇到一些问题。现在我有这个(在猫鼬中):
{
created: { type: Date, default: Date.now },
phone_number: { type: String, unique: true },
location: { type: [Number], index: '2dsphere' },
friends: [{ phone_number: String }]
}
所以每个用户都包含其他用户电话号码的数组(电话号码标识每个用户)。但我认为这不是一个好主意,因为一个用户可能有零个或多个朋友 - 所以朋友数组将是可变的并且可能会显着增长。
对该结构建模的最佳选择是什么?