sql >> Database >  >> NoSQL >> MongoDB

Modellering van blogs en beoordelingen in mongodb en nodejs

Een goede gewoonte met MongoDB (en andere niet-relationele gegevensopslag) is om uw gegevens te modelleren zodat ze gemakkelijk te gebruiken/opvragen in uw toepassing zijn. In jouw geval zou je kunnen overwegen om de structuur een beetje te denormaliseren en de beoordeling direct in de blogverzameling op te slaan, zodat een blog er ongeveer zo uit kan zien:

{
  title: "My New Post",
  body: "Here's my new post. It is great. ...",
  likes: 20,
  dislikes: 5,
  ...
  rates: [
    { client_id: (id of client), rate: 5 },
    { client_id: (id of another client), rate: 3 },
    { client_id: (id of a third client), rate: 10 }
  ]
}

Het idee is dat de objecten in de rates array bevat alle gegevens die u nodig hebt om het blogbericht, compleet met beoordelingen, in één document weer te geven. Als u de tarieven ook op een andere manier moet opvragen (bijv. alle beoordelingen van gebruiker X vinden), en de site lees-intensief is, kunt u ook overwegen het opslaan van de gegevens in een Rates verzamelen zoals u nu doet. Natuurlijk, de gegevens bevinden zich op twee plaatsen en het is moeilijker om ze bij te werken, maar het kan een algemene overwinning zijn nadat je je app hebt geanalyseerd en hoe deze toegang krijgt tot je gegevens.

Merk op dat u indexen diep in de structuur van een document kunt toepassen, zodat u bijvoorbeeld News.rates.client_id kunt indexeren. , en dan kunt u snel alle documenten vinden in de News verzameling die een bepaalde gebruiker heeft beoordeeld.




  1. Waarom deze update-query slechts één record één keer bijwerkt?

  2. Hoe maak je een afgetopte collectie met Spring Data? - MongoDB

  3. Hoe een afwikkelingsaggregatie omkeren?

  4. mongodb num_rows equivalent php