sql >> Base de Datos >  >> NoSQL >> MongoDB

¿Son los subdocumentos de mongodb equivalentes a las subcolecciones de Firestore?

¿Cuántas actividades puede tener un solo proyecto? Si no hay límite, es mejor que cree una colección de nivel raíz para las actividades. En MongoDB, el tamaño máximo del documento BSON es 16 MB . Siendo así, es posible que no pueda almacenar todos los proyectos y sus actividades en un solo documento (documento de la organización).

Crearía 3 colecciones, a saber:organizaciones, proyectos y actividades.

  1. Cada organización debe tener un documento en organizaciones colección similar a la que tienes en Firestore.
  2. Cada proyecto debe tener un documento en proyectos colección que contiene un campo "organizationID" para que pueda consultar proyectos de una organización específica usando su ID. Esto es equivalente a un documento en su subcolección de proyectos. Cada proyecto también debe tener su propia ID única.
  3. Cada actividad debe tener un documento en actividades colección que contiene un campo "projectID" para que se puedan recuperar las actividades de un proyecto específico.

He agregado esos organizationID adicionales , projectID campos aunque tenga _id en caso de que desee tener identificadores de documentos de Firestore allí para facilitar las consultas en paralelo.

No tienes que preocuparte por 16 MB limite el tamaño del documento de esta manera y será más fácil consultar proyectos y actividades siempre que tenga las identificaciones correctas.

Consultando actividades de un determinado proyecto:

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

A partir de entonces, depende de usted cómo desea escribir consultas con proyecciones, agregación, etc.