sql >> Databasteknik >  >> NoSQL >> MongoDB

Lagra vänrelationer i MongoDB?

Håller en lista över friend_ids i en användare, är vad jag kommer att rekommendera. Några skäl,

1.Du frågar en användare och du har en lista över alla vänner tillgänglig i förväg.

2.Förfrågningarna (väntande, accepterade) kan också hanteras genom att se att respektive ID ska finnas i både användarens vänlista. Så jag kan få en lista över faktiska och accepterade vänner genom att fråga

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, när du tar bort en vänskap måste du $pull från vänlistan för båda användarna, men frekvensen av det skulle vara mycket mindre. Men du frågar mindre när du skaffar vänlistan, som skulle användas ofta.




  1. Ta bort database.yml när du använder Mongoid i Rails 3.2

  2. Vad är Redis pubsub och hur använder jag det?

  3. Letar efter en lösning mellan att ställa in många timers eller att använda en schemalagd uppgiftskö

  4. Använd 'MongoMappingContext#setAutoIndexCreation(boolean)' eller åsidosätt 'MongoConfigurationSupport#autoIndexCreation()' för att vara explicit