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

Jak Trello radzi sobie z przestawianiem kart, list, list kontrolnych itp?

Każdy element otrzymuje pos (liczba JavaScript, czyli liczba zmiennoprzecinkowa podwójnej precyzji). Następnie są renderowane przez sortowanie według pos .

Po dodaniu nowego elementu jest to pos zależy od tego, gdzie na liście się znajduje:

  • dół listy - maksymalna pos obecnie na liście + bufor (chyba 1024 jest używany)
  • góra listy - minimalna pos obecnie na liście podzielonej przez dwa
  • środek listy - średnia z pos dwóch sąsiadujących ze sobą elementów

Środkowa opcja zostałaby przypisana przez klienta; góra/dół może być przypisany przez klienta lub przekazany do serwera jako ciągi "top" lub "bottom" w takim przypadku serwer wykona logikę.

Na serwerze, po przypisaniu pos do nowego elementu, jak pokazano powyżej, element jest porównywany z najbliższymi sąsiadami pod kątem sąsiedztwa - jeśli są one od siebie mniejsze niż minimalna odległość (.01 jest używany, jak sądzę), są one rozłożone (potencjalnie kaskadowo zwiększając pos całej listy).

Nie sądzę, że jest to idealny sposób, ale tak właśnie robi Trello.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongodb nie może uruchomić map Reduce bez silnika js

  2. Reg:mongo db błędne wyjście zgodnie z zapytaniem

  3. Nieprawidłowy ns podczas łączenia się z serwerem mongodb

  4. Kodek sterownika Mongodb scala dla klas cech i dziedziczonych

  5. count() MongoDB niepoprawnie zwraca 0, jeśli podano zapytanie