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.
- Setiap organisasi harus memiliki dokumen di organisasi koleksi yang mirip dengan yang Anda miliki di Firestore.
- 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.
- 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.