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

Bagaimana cara membuat umpan file dari orang-orang yang diikuti pengguna?

Ini adalah masalah fan-in vs fan-out. Saya sarankan Anda mencoba fan-out:

Simpan feed koleksi untuk pengguna Anda. Saat pengguna mengunggah dokumen, sisipkan item umpan baru di setiap koleksi item umpan temannya. Koleksinya bisa terlihat seperti ini:

{
    "_id": (some id)
    "UserId": (id of the user who 'owns', i.e. reads this feed)
    "FriendId": (if of the friend who posted the file)
    "FriendName": "John Doe" (name of the fried, denormalized)
    "Timestamp": ...
}

Gunakan indeks gabungan {UserId, Timestamp} .

Pendekatan ini berat menulis:Jika Jane memiliki ratusan teman, ratusan sisipan ini akan memakan waktu mereka. Di sisi lain, mengunggah file biasanya membutuhkan banyak waktu, sehingga biayanya dapat diabaikan, dan pembacaan Anda akan sangat sederhana.

Tentu saja, ini dapat lebih dioptimalkan dengan lebih banyak usaha, tetapi itu akan baik-baik saja untuk sedikit lalu lintas.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. di Bereaksi, saya memanggil dua daftar ke halaman dari mongo dan saya ingin mengklik satu untuk memfilter apa yang ditampilkan di yang lain

  2. Menyimpan kata sandi dengan Node.js dan MongoDB

  3. Mongodb .net async menunggu

  4. Menghapus dokumen dari koleksi mongodb dari node.js

  5. Memproyeksikan ke tipe lain menggunakan C# SDK