Vedení seznamu friend_ids
v uživateli, je to, co doporučuji. Několik důvodů,
1. Zeptáte se uživatele a máte předem k dispozici seznam všech přátel.
2. Požadavky (nevyřízené, přijaté) lze také zpracovat tak, že příslušná ID by měla být přítomna v obou seznamech přátel uživatele. Takže mohu získat seznam skutečných a přijatých přátel dotazem
my_id, my_friend_ids = user._id, user.friend_ids
my_friends = db.users.find({'_id':{'$in': my_friend_ids}, 'friend_ids': my_id})
Ano, při odstraňování přátelství musíte $pull
ze seznamu přátel obou uživatelů, ale frekvence by byla mnohem menší. Při získávání seznamu přátel, který by se často používal, se ale ptáte méně.