friend_ids
のリストを保持する ユーザーでは、私がお勧めするものです。いくつかの理由、
1.ユーザーにクエリを実行すると、すべての友達のリストが事前に利用可能になります。
2.リクエスト(保留中、承認済み)も、それぞれのIDがユーザーの友達リストの両方に存在する必要があることを確認することで処理できます。だから、私はクエリすることで実際の友達と受け入れられた友達のリストを得ることができます
my_id, my_friend_ids = user._id, user.friend_ids
my_friends = db.users.find({'_id':{'$in': my_friend_ids}, 'friend_ids': my_id})
はい、友情を削除するときは、$pull
する必要があります 両方のユーザーのフレンドリストからですが、その頻度ははるかに少なくなります。ただし、頻繁に使用されるフレンドリストを取得する際のクエリは少なくなります。