sql >> Databáze >  >> NoSQL >> MongoDB

Modelování blogů a hodnocení v mongodb a nodejs

Osvědčeným postupem s MongoDB (a dalšími nerelačními datovými úložišti) je modelovat svá data tak, aby bylo snadné je používat/dotazovat se ve vaší aplikaci. Ve vašem případě byste mohli zvážit trochu denormalizaci struktury a uložit hodnocení přímo do sbírky blogů, takže blog může vypadat nějak takto:

{
  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 }
  ]
}

Myšlenka je taková, že objekty v rates pole obsahuje všechna data, která potřebujete k zobrazení položky blogu, včetně hodnocení, přímo v jediném dokumentu. Pokud se také potřebujete dotazovat na sazby jiným způsobem (např. najít všechna hodnocení od uživatele X) a web je náročný na čtení, můžete zvážit také ukládání dat do Rates sbírku jako nyní. Jistě, data jsou na dvou místech a je těžší je aktualizovat, ale po analýze aplikace a způsobu, jakým k vašim datům přistupuje, to může být celková výhra.

Všimněte si, že indexy můžete použít hluboko do struktury dokumentu, takže například můžete indexovat News.rates.client_id a poté můžete rychle najít jakékoli dokumenty v News kolekce, kterou ohodnotil konkrétní uživatel.




  1. Zástupný znak tečkové notace Mongodb?

  2. Analyzujte JSON do dokumentu MONGODB

  3. Aktualizujte hodnotu v MongoDB na základě její aktuální hodnoty

  4. Jak načíst data ze sbírky MongoDB v C# pomocí regulárního výrazu?