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

przechowywanie upvotes/downvotes w mongodb

Dokumenty MongoDB są obecnie ograniczone do maksymalnie 16 MB, więc zakładając, że obliczenia Gilberta są dokładne, nie będziesz w stanie przechowywać wszystkich 6 milionów user_id s w Post dokument.

Możesz jednak rozważyć przechowywanie głosów w User zamiast tego dokumentu (np. post_id s, na które głosował dany użytkownik). Jest znacznie mniej prawdopodobne, że użytkownik zagłosuje na 6 milionów różnych postów, więc w ten sposób nie osiągniesz limitu rozmiaru tak szybko.

Inny sposób radzenia sobie z tym:jeśli spodziewasz się, że wiele głosów na konkretny post, możesz chcieć przechowywać głosy poza Post dokumenty w oddzielnej kolekcji i wykonaj dodatkowe zapytanie, podobne do tabeli JOIN w języku SQL:

user_votes { user_id: ObjectId(...), post_id: ObjectId(...), vote:-1 }

i utwórz indeks złożony na (user_id, post_id).



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Jak przesyłać powiadomienia push za pomocą angular.js?

  2. Korzystanie z indeksu geoprzestrzennego MongoDB z danymi 3D

  3. Najlepszy sposób na grupowanie według daty z Mongoid

  4. Łączenie się z MongoDb za pomocą SSL z aplikacji JAVA

  5. Mapuj/zmniejszaj i sortuj zagnieżdżony dokument