MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Bagaimana Trello menangani penataan ulang kartu, daftar, daftar periksa, dll

Setiap item diberi pos (nomor JavaScript, jadi float presisi ganda). Kemudian, mereka dirender dengan mengurutkan berdasarkan pos .

Ketika item baru ditambahkan, itu adalah pos didasarkan pada di mana dalam daftar itu:

  • daftar terbawah - maksimum pos saat ini dalam daftar + buffer (saya pikir 1024 digunakan)
  • daftar teratas - minimum pos saat ini dalam daftar dibagi dua
  • daftar tengah - rata-rata pos dari dua item yang berdekatan

Opsi tengah akan diberikan oleh klien; bagian atas/bawah dapat diberikan oleh klien atau diteruskan ke server sebagai string "top" atau "bottom" dalam hal ini server akan menjalankan logika.

Di server, setelah menetapkan pos ke item baru seperti yang ditunjukkan di atas, item diperiksa terhadap tetangga terdekatnya untuk kedekatan - jika jaraknya kurang dari minimum (.01 digunakan, saya percaya), mereka tersebar (berpotensi mengalir ke peningkatan pos dari seluruh daftar).

Menurut saya ini bukan cara yang ideal, tapi begitulah cara Trello melakukannya.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. $fitler array bersarang menggunakan $lte $gte

  2. Bagaimana cara mengatasi batasan desain ini di mongo db w.r.t ke kinerja?

  3. Menggabungkan kecocokan pada bidang teks dengan agregat

  4. Otentikasi selama koneksi ke instance server MongoDB menggunakan Java

  5. Efisiensi saat memasukkan ke mongodb (pymongo)