Een lijst bijhouden van friend_ids
in een gebruiker, is wat ik zal aanbevelen. Enkele redenen,
1.Je vraagt een gebruiker om en je hebt vooraf een lijst met alle vrienden beschikbaar.
2. De verzoeken (in behandeling, geaccepteerd) kunnen ook worden afgehandeld, door te zien dat een respectievelijk id aanwezig moet zijn in de vriendenlijst van de gebruiker. Dus ik kan een lijst met echte en geaccepteerde vrienden krijgen door te vragen
my_id, my_friend_ids = user._id, user.friend_ids
my_friends = db.users.find({'_id':{'$in': my_friend_ids}, 'friend_ids': my_id})
Ja, terwijl je een vriendschap verwijdert, moet je $pull
uit de vriendenlijst van beide gebruikers, maar de frequentie daarvan zou veel minder zijn. Maar je vraagt minder om de vriendenlijst, die vaak zou worden gebruikt.