MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Trello xử lý việc sắp xếp lại thẻ, danh sách, danh sách kiểm tra như thế nào, v.v.

Mỗi mặt hàng được cung cấp một pos (một số JavaScript, nên float chính xác kép). Sau đó, chúng được hiển thị bằng cách sắp xếp theo pos .

Khi một mục mới được thêm vào, đó là pos dựa trên vị trí của nó trong danh sách:

  • cuối danh sách - pos tối đa hiện có trong danh sách + bộ đệm (tôi nghĩ 1024 được sử dụng)
  • đầu danh sách - pos tối thiểu hiện đang ở trong danh sách chia đôi
  • giữa danh sách - trung bình của pos của hai mục liền kề

Tùy chọn giữa sẽ được chỉ định bởi khách hàng; trên cùng / dưới cùng có thể được chỉ định bởi máy khách hoặc được chuyển cho máy chủ dưới dạng các chuỗi "top" hoặc "bottom" trong trường hợp đó máy chủ sẽ thực hiện logic.

Trên máy chủ, sau khi gán pos đối với mặt hàng mới như được hiển thị ở trên, mặt hàng được kiểm tra so với các hàng xóm gần nhất của nó để biết độ liền kề - nếu chúng cách nhau ít hơn một khoảng cách tối thiểu (.01 được sử dụng, tôi tin rằng), chúng được trải rộng (có khả năng xếp tầng để tăng pos của toàn bộ danh sách).

Tôi không nghĩ đây là cách lý tưởng, nhưng đó là cách Trello thực hiện.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Đọc tệp BSON bằng Python?

  2. Phép chiếu có điều kiện trong mongodb bằng cách sử dụng trình điều khiển c #

  3. In ấn đầu ra đẹp mắt trong pymongo

  4. mongodb - cách tìm và sau đó tổng hợp

  5. Kiểm tra sự tồn tại của đối tượng trong mongo bằng gopkg.in/mgo.v2