sql >> Database >  >> NoSQL >> MongoDB

Documentdatabases:overtollige gegevens, referenties, enz. (specifiek MongoDB)

Er zijn in principe twee scenario's:vers en muf .

Nieuwe gegevens

Het opslaan van dubbele gegevens is eenvoudig. Het onderhouden van de dubbele gegevens is het moeilijkste deel. Het gemakkelijkste is dus om onderhoud te vermijden door simpelweg geen dubbele gegevens op te slaan. Dit is vooral handig als u nieuwe gegevens nodig heeft . Sla alleen de referenties op en doorzoek de collecties wanneer u informatie moet ophalen.

In dit scenario heb je wat overhead vanwege de extra query's. Het alternatief is om alle locaties van dubbele gegevens bij te houden en alle instanties bij elke update bij te werken. Dit brengt ook overhead met zich mee, vooral in N-to-M-relaties zoals degene die u noemde. Dus hoe dan ook, u zal hebben wat overhead, als u nieuwe gegevens nodig heeft. Je kunt niet het beste van twee werelden hebben.

Verouderde gegevens

Als u het zich kunt veroorloven om verouderde gegevens te hebben, wordt het een stuk eenvoudiger. Om query-overhead te voorkomen, kunt u dubbele gegevens opslaan. Om te voorkomen dat u dubbele gegevens moet bijhouden, gaat u geen dubbele gegevens opslaan. In ieder geval niet actief .

In dit scenario wilt u ook alleen de verwijzingen tussen documenten opslaan. Gebruik vervolgens een periodieke kaartverkleiningstaak om de dubbele gegevens te genereren. U kunt dan het resultaat van een enkele kaart opvragen in plaats van afzonderlijke collecties. Op deze manier vermijdt u de query-overhead, maar hoeft u ook niet op gegevenswijzigingen te jagen.

Samenvatting

Bewaar alleen verwijzingen naar andere documenten. Als u zich verouderde gegevens kunt veroorloven, gebruikt u periodieke kaartverkleinende taken om te genereren dubbele gegevens. Vermijd onderhoud dubbele gegevens; het is complex en foutgevoelig.



  1. hoe toegang te krijgen tot socketsessie in alle clusters

  2. hoe nestjs redis microservice te gebruiken?

  3. Zet in Flask een POST-object om in een representatie die geschikt is voor mongodb

  4. mongo kopiëren van de ene collectie naar de andere (op dezelfde db)