Giữ danh sách friend_ids
trong một người dùng, là những gì tôi sẽ giới thiệu. Vài lý do,
1. Bạn truy vấn người dùng và bạn có sẵn danh sách tất cả bạn bè.
2.Các yêu cầu (đang chờ xử lý, được chấp nhận) cũng có thể được xử lý, bằng cách thấy rằng một id tương ứng phải có trong cả danh sách bạn bè của người dùng. Vì vậy, tôi có thể nhận được danh sách những người bạn thực tế và được chấp nhận bằng cách truy vấn
my_id, my_friend_ids = user._id, user.friend_ids
my_friends = db.users.find({'_id':{'$in': my_friend_ids}, 'friend_ids': my_id})
Có, trong khi xóa bỏ tình bạn, bạn phải $pull
từ danh sách bạn bè của cả hai người dùng, nhưng tần suất xuất hiện sẽ ít hơn nhiều. Nhưng bạn ít truy vấn hơn trong việc lấy danh sách bạn bè, danh sách bạn bè sẽ được sử dụng thường xuyên.