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

Hvad er den bedste datastruktur til at gemme disse data på mongoDB?

Din struktur ser korrekt ud. Du gemmer kun news_id i datafeltet, og det er en smartere implementering, fordi lagring af hele dokument vil medføre en masse flytning og skrivning af MongoDB, hver gang en ny nyhed tilføjes til favoritter af brugeren.

Årsagen, som du sikkert allerede kender, er, at der oprettes et nyt dokument ved hver opdatering. Reference:http://docs.mongodb.org/ manual/reference/method/db.collection.save/#upsert .

Jeg tror også, at du som forretningsregel bør begrænse antallet af nyheder, der kan indstilles som favorit af brugeren. At tillade denne liste at vokse i det uendelige vil ikke være en god idé for det indlejrede design.

I tilfælde af at du vil have et ubegrænset antal favoritter, skal du hellere oprette en separat samling for det og derefter for at få alle favoritterne af en bruger bruge $match (på brugerens id) og $sort (af nyheder) operatorer i en aggregeringsforespørgsel til at få den sorterede liste over foretrukne nyheder til brugeren.




  1. Hvordan håndterer ConnectionMultiplexer afbrydelser?

  2. MongoDB Regex, Index &Performance

  3. At finde nøgler, der ikke udløber i Redis

  4. MongoDB med Mongoose limit underdokumenter