MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Modelowanie blogów i ocen w mongodb i nodejs

Dobrą praktyką z MongoDB (i innymi nierelacyjnymi magazynami danych) jest modelowanie danych tak, aby były łatwe do użycia/zapytania w aplikacji. W Twoim przypadku możesz rozważyć nieco denormalizację struktury i zapisać ocenę bezpośrednio w kolekcji blogów, dzięki czemu blog może wyglądać mniej więcej tak:

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

Chodzi o to, że obiekty w rates tablica zawiera wszystkie dane potrzebne do wyświetlenia wpisu na blogu, wraz z ocenami, bezpośrednio w pojedynczym dokumencie. Jeśli potrzebujesz również zapytać o stawki w inny sposób (np. znaleźć wszystkie oceny wystawione przez użytkownika X), a witryna jest intensywnie czytana, możesz rozważyć również przechowywanie danych w Rates kolekcja tak jak teraz. Jasne, dane znajdują się w dwóch miejscach i trudniej je zaktualizować, ale może to przynieść ogólne korzyści po przeanalizowaniu aplikacji i sposobu, w jaki uzyskuje ona dostęp do danych.

Zauważ, że możesz zastosować indeksy głęboko w strukturze dokumentu, więc na przykład możesz zaindeksować News.rates.client_id , a następnie możesz szybko znaleźć dowolne dokumenty w News kolekcja oceniona przez konkretnego użytkownika.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Relacje Mongoid i ActiveRecord:niezdefiniowana metoda `cytowana_nazwa_tabeli'

  2. Kontrola dostępu klienta MongoDB:uwierzytelnianie SCRAM-SHA-1 nie powiodło się, niezgodność przechowywanych kluczy

  3. Aplikacja Multi-Tenant Rails 3 na Heroku przy użyciu PostgreSQL

  4. Jak uzyskać dostęp do bazy danych MongoDB z dwóch aplikacji Openshift?

  5. Nodejs + Mongo db łączy się z bazą danych serwera za pomocą nazwy użytkownika i hasła