【发布时间】:2013-05-22 23:40:48
【问题描述】:
在我的应用中有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 }]
}
所以每个用户都包含其他用户电话号码的数组(电话号码标识每个用户)。但我不认为这是一个好主意,因为一个用户可能有零个或多个朋友 - 所以朋友数组将是可变的并且可能会显着增长。
对该结构建模的最佳选择是什么?
【问题讨论】: