MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Os subdocumentos do mongodb são equivalentes às subcoleções do Firestore?


Quantas atividades um único projeto pode ter? Se não houver limite, é melhor criar uma coleção de nível raiz para atividades. No MongoDB, o tamanho máximo do documento BSON é 16 MB . Sendo assim, talvez você não consiga armazenar todos os projetos e suas atividades em um único documento (documento da organização).

Eu criaria 3 coleções a saber - organizações, projetos e atividades.
  1. Cada organização deve ter um documento em organizações coleção semelhante à que você tem no Firestore.
  2. Cada projeto deve ter um documento em projetos coleção contendo um campo "organizationID" para que você possa consultar projetos de uma organização específica usando seu ID. Isso é equivalente a um documento em sua subcoleção de projetos. Cada projeto também deve ter seu próprio ID exclusivo.
  3. Cada atividade deve ter um documento em atividades coleção contendo um campo "projectID" para que as atividades de um projeto específico possam ser recuperadas.



Adicionei esses organizationID adicionais , projectID campos mesmo que você tenha _id caso você queira ter os IDs de documento do Firestore para facilitar as consultas lado a lado.

Você não precisa se preocupar com 16 MB limite de tamanho do documento dessa forma e será mais fácil consultar projetos e atividades desde que você tenha os IDs corretos.

Atividades de consulta de um determinado projeto:
await db.collection("activities").find({projectID: "myProjectID"}).toArray()

Depois disso, você decide como deseja escrever consultas com projeções, agregação etc.