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

Apakah sub dokumen mongodb setara dengan subkoleksi Firestore?

Berapa banyak aktivitas yang dapat dilakukan oleh satu proyek? Jika tidak ada batasan maka Anda lebih baik membuat koleksi level root untuk aktivitas. Di MongoDB, ukuran dokumen BSON maksimum adalah 16 MB . Karena itu, Anda mungkin tidak dapat menyimpan semua proyek dan aktivitasnya dalam satu dokumen (dokumen organisasi).

Saya akan membuat 3 koleksi yaitu - organisasi, proyek, dan aktivitas.

  1. Setiap organisasi harus memiliki dokumen di organisasi koleksi yang mirip dengan yang Anda miliki di Firestore.
  2. Setiap proyek harus memiliki dokumen di proyek koleksi yang berisi bidang "ID organisasi" sehingga Anda dapat membuat kueri proyek dari organisasi tertentu menggunakan ID mereka. Ini setara dengan dokumen di sub-koleksi proyek Anda. Setiap proyek juga harus memiliki ID uniknya sendiri.
  3. Setiap aktivitas harus memiliki dokumen di aktivitas koleksi yang berisi bidang "projectID" sehingga aktivitas proyek tertentu dapat diambil.

Saya telah menambahkan organizationID tambahan tersebut , projectID bidang meskipun Anda memiliki _id untuk berjaga-jaga jika Anda ingin memiliki ID Dokumen Firestore di sana untuk kueri berdampingan yang lebih mudah.

Anda tidak perlu khawatir tentang 16 MB batas ukuran dokumen dengan cara ini dan akan lebih mudah untuk menanyakan proyek dan aktivitas selama Anda memiliki ID yang benar.

Menanyakan aktivitas proyek tertentu:

await db.collection("activities").find({projectID: "myProjectID"}).toArray()

Setelah itu terserah Anda bagaimana Anda ingin menulis kueri dengan proyeksi, agregasi, dll.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. dukungan rmongodb untuk MongoDB 3

  2. Mengelola dokumen dan koleksi MongoDB secara visual

  3. Masalah kerangka kerja Agregasi SailsJS &MongoDB dengan kueri khusus

  4. Masalah izin Pymongo untuk sisipan yang aman

  5. Mongodb Mencoba mendapatkan bidang yang dipilih untuk dikembalikan dari agregat