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

Apa struktur dokumen MongoDB yang baik untuk kueri pengikut/pengikut pengguna yang paling efisien?

Ini adalah masalah klasik pengikut-pengikut dan tidak ada yang menjawabnya.. Lihat tautan ini:

desain mongo db dari pengikut dan umpan, di mana saya harus menyematkan?

Sebenarnya situasi ini cocok untuk skema relasional, jika MongoDB dan SQL server adalah satu-satunya pilihan yang Anda miliki. Tapi ini adalah jenis khusus dari masalah relasional di mana Anda memiliki hubungan dua arah. Ini mungkin dapat ditangani dengan lebih baik oleh basis data grafik:

http://forum.kohanaframework.org/discussion/10130/followers-and-following-database-design-like-twitter/p1

Masalahnya, Anda dapat menyimpan pengikut atau pengikut dalam dokumen Pengguna, tetapi tidak keduanya, untuk menghindari masalah penghapusan ganda. Jadi jika Anda harus tetap berpegang pada MongoDB, salah satu jalan keluarnya adalah..(dengan asumsi orang tidak mengikuti/berhenti mengikuti siapa pun itu sering),

Simpan hanya pengikut di dokumen, karena ketika saya melihat profil saya, saya akan tertarik dengan orang yang saya ikuti.. (itulah alasan saya mengikuti mereka sejak awal, kan?)..Lalu lakukan query seperti:

db.Users.find({ user_id : { $in : followees })

Ini akan memberitahu siapa saja yang mengikuti saya (katakanlah id saya adalah 'user_id').

Alasan lain mengapa saya tidak menyarankan sebaliknya adalah.. seseorang dapat mengikuti paling banyak 30-40 orang, jadi dokumen Pengguna yang menyimpan 30-40 pengikut seharusnya tidak masalah dibandingkan dengan dokumen Pengguna yang menyimpan ribuan pengikut! Dengan pendekatan followee-in-document, Anda mendapatkan dokumen Pengguna berukuran rata-rata di seluruh..Dalam pendekatan follower-in-document, Anda akan memiliki beberapa dokumen yang sangat kecil tetapi beberapa sangat besar juga. Dan tergantung pada jumlah data pengikut yang Anda masukkan (jika ada, selain dari follower_id), Anda mungkin ingin berhati-hati dengan batas ukuran dokumen.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Penyewaan multi berbasis koleksi di mongo data musim semi

  2. `bidang tidak boleh sama:' ' dan ' ` kesalahan mongoimport

  3. Menangani kueri database asinkron di node.js dan mongodb

  4. Pencarian Teks MongoDB DAN beberapa kata pencarian

  5. Bisakah MongoDB di-host dalam proses?