sql >> Database >  >> NoSQL >> MongoDB

Beste MongoDB-schema voor Twitter-kloon?

Dit is geen ideaal schema voor een Twitter-kloon. Het grootste probleem is dat "posts" een steeds groter wordende reeks is, wat betekent dat mongo je enorme document om de paar berichten moet verplaatsen omdat het geen documentpadding meer heeft. Bovendien is er een harde (16 MB) groottelimiet voor documenten, wat dit schema op zijn best beperkend maakt.

Het ideale schema hangt af van het al dan niet verwachten van Twitter's belasting. Het "perfecte" mongodb-schema in termen van onderhoudbaarheid en gebruiksgemak is niet hetzelfde als het schema dat ik zou gebruiken voor iets met de doorvoer van Twitter. In het eerste geval zou ik bijvoorbeeld een verzameling berichten gebruiken met een document per bericht. In het scenario met hoge doorvoer zou ik beginnen met het maken van bucket-documenten voor kleine groepen berichten (bijvoorbeeld één per "meer krijgen"-pagina). Bovendien moet u in het scenario met hoge doorvoer de tijdlijn van de volger up-to-date houden in afzonderlijke tijdlijndocumenten van de gebruiker, terwijl u in scenario's met lage doorvoer ze eenvoudig kunt opvragen.



  1. MongooseError:je kunt niet meerdere keren `mongoose.connect()` gebruiken terwijl je verbonden bent

  2. MongoDB-aggregaat, hoe u elk element van de array in groepspijplijn aan ToSet kunt toevoegen

  3. include_type_name parameter is ingesteld op true in node.js

  4. hoe mapreduce te gebruiken in het subdocument mangoest / mongodb?