MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Memorizzazione delle relazioni di amicizia in MongoDB?

Tenere un elenco di friend_ids in un utente, è ciò che consiglierò. Pochi motivi,

1. Interroga un utente e hai l'elenco di tutti gli amici disponibile in anticipo.

2.Anche le richieste (in sospeso, accettate) possono essere gestite, vedendo che un rispettivo ID deve essere presente in entrambe le liste di amici dell'utente. Quindi, posso ottenere l'elenco degli amici effettivi e accettati interrogando

my_id, my_friend_ids = user._id, user.friend_ids
my_friends = db.users.find({'_id':{'$in': my_friend_ids}, 'friend_ids': my_id})

Sì, mentre rimuovi un'amicizia, devi $pull dalla lista amici di entrambi gli utenti, ma la frequenza sarebbe molto inferiore. Ma interroghi meno per ottenere l'elenco degli amici, che verrebbe utilizzato frequentemente.