MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Моделиране на блогове и рейтинги в mongodb и nodejs

Добра практика с MongoDB (и други нерелационни хранилища за данни) е да моделирате вашите данни, така че да са лесни за използване/запитване във вашето приложение. Във вашия случай може да обмислите малко денормализиране на структурата и съхраняване на оценката направо в колекцията на блогове, така че блогът може да изглежда по следния начин:

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

Идеята е, че обектите в rates масивът съдържа всички данни, от които ще се нуждаете, за да покажете записа в блога, заедно с оценки, направо в един документ. Ако също така трябва да направите заявка за тарифите по друг начин (напр. да намерите всички оценки, направени от потребител X), и сайтът е много труден за четене, може да обмислите също съхраняване на данните в Rates колекция, както правите сега. Разбира се, данните са на две места и е по-трудно да се актуализират, но може да е цялостна победа, след като анализирате приложението си и как то осъществява достъп до данните ви.

Имайте предвид, че можете да приложите индекси дълбоко в структурата на документа, така че например можете да индексирате News.rates.client_id и след това можете бързо да намерите всякакви документи в News колекция, която даден потребител е оценил.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Абонаментът за публикуване на Meteor не е реактивен

  2. MongoDB:Извличане само на документи, създадени през последните 24 часа?

  3. Как да конструирам заявка за актуализиране на документ с вложен масив в mongo?

  4. Вмъкнете нов документ с помощта на InsertOneAsync (.NET драйвер 2.0)

  5. паспорт на възли Грешка:Неизвестна стратегия за удостоверяване локално влизане