sql >> Database >  >> NoSQL >> MongoDB

Wat is de beste gegevensstructuur om deze gegevens op mongoDB op te slaan?

Je structuur ziet er goed uit. U slaat alleen news_id op in het gegevensveld en dat is een slimmere implementatie omdat het opslaan van een volledig document veel beweging en schrijven zal veroorzaken door MongoDB telkens wanneer een nieuw nieuws door de gebruiker aan favorieten wordt toegevoegd.

Reden, die u waarschijnlijk al weet, is dat er bij elke update een nieuw document wordt gemaakt. Referentie:http://docs.mongodb.org/ manual/reference/method/db.collection.save/#upsert .

Ook denk ik dat je als bedrijfsregel het aantal nieuwsitems dat door de gebruiker als favoriet kan worden ingesteld, moet beperken. Deze lijst onbeperkt laten groeien, is geen goed idee voor het ingesloten ontwerp.

Als u een onbeperkt aantal favorieten wilt, kunt u daar beter een aparte verzameling voor maken en om vervolgens alle favorieten van een gebruiker te krijgen, gebruikt u $match (op gebruikers-ID) en $sort (van nieuwsitems) operators in een aggregatiequery om krijg de gesorteerde lijst met favoriete nieuwsitems voor de gebruiker.




  1. Top N-items uit de array vinden

  2. PyMongo vs MongoEngine voor Django

  3. Hoe beschrijf ik een collectie in Mongo?

  4. Instantie van bean mislukt:Opgegeven klasse is een interface