sql >> Database >  >> NoSQL >> MongoDB

Ingesloten of gerefereerde relaties

In uw geval zou ik adviseren om referentiegegevens te gebruiken. Omdat ik veronderstel dat je elk van die verzamelingen op zichzelf moet manipuleren (je moet in staat zijn om "producten" te bewerken/verwijderen/bijwerken door _id, en een aantal andere gecompliceerde zoekopdrachten uit te voeren, wat veel gemakkelijker en effectiever is als je aparte verzameling).

Tegelijkertijd zou ik sommige . bewaren volledig ingebedde gegevens in gebruikersverzameling, alleen voor een snellere weergave in de browser van de bezoeker. Stel dat u een gebruikerspagina heeft waarop u het gebruikersprofiel en de top-5 van markten en top-20-producten wilt weergeven. U kunt die nieuwste top-5 en top-20 in het gebruikersdocument insluiten en deze ingesloten objecten bijwerken wanneer er nieuwe markten/producten zijn. In dit geval - wanneer u de gebruikerspagina laat zien, hoeft u slechts 1 query naar MongoDB te maken. Dit werkt dus als cache. Als de bezoeker meer producten moet bekijken, gaat hij naar de volgende pagina "Producten" en zoekt hij een aparte verzameling "Producten" op in MongoDB.



  1. Tel onderscheiden subdocumentveld en uitvoer als benoemde sleutels

  2. Mongodb $graphLookup bouw hiërarchie

  3. JBAS011445:Kan adapter voor persistentieprovider 'org.hibernate.ogm.jpa.HibernateOgmPersistence' niet ophalen

  4. MongoDB-query's registreren met Spring Boot