sql >> Base de Datos >  >> NoSQL >> MongoDB

¿Almacenar relaciones de amigos en MongoDB?

Mantener una lista de friend_ids en un usuario, es lo que voy a recomendar. Pocas razones,

1. Consulta a un usuario y tiene una lista de todos los amigos disponibles por adelantado.

2. Las solicitudes (pendientes, aceptadas) también se pueden manejar, al ver que las identificaciones respectivas deben estar presentes en la lista de amigos de ambos usuarios. Entonces, puedo obtener una lista de amigos reales y aceptados consultando

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í, al eliminar una amistad, debes $pull de la lista de amigos de ambos usuarios, pero la frecuencia sería mucho menor. Pero consulta menos para obtener la lista de amigos, que se usaría con frecuencia.