Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

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

Para aquellos de ustedes que trabajaron con Firebase (Firestore), pueden tener una colección con documentos en los que cada documento tiene una identificación, luego una colección puede contener una subcolección (equivalente a un documento incrustado como una matriz de documentos como una propiedad ).

Entonces, esta subcolección puede contener muchos documentos mientras cada uno tiene una identificación.

En Firestore, la subcolección tiene carga diferida.

Obtendrá los documentos de esa colección, pero si hay una o más subcolecciones, no los recuperará a menos que vaya específicamente a esa ruta. por ejemplo: colección/documento/nombre de la subcolección/otro documento

Entonces 2 preguntas:

  1. ¿Los documentos incrustados se cargan de forma diferida? No quiero obtener un documento con todos sus documentos incrustados (posiblemente un millón) a menos que acceda a él explícitamente.
  2. ¿Cómo puedo asegurarme de que cada documento incrustado en MongoDB obtenga un "_id" en forma de ObjectID ("blablabla")?

EDITAR : Actualmente tengo una implementación de Firestore que tiene una práctica de subcolección detrás.

Ejemplo: organización => ID de documento => proyectos => ID de proyecto => actividades => :tipo de actividad => ID de actividad

  1. colección de organización que contiene documentos (cada documento = organización).
  2. Cada documento de organización contiene un esquema ( id, nombre, idioma, etc. ) y algunas subcolecciones en las que una de ellas es la subcolección de proyectos.
  3. la subcolección de proyectos contiene documentos de proyectos .
  4. un documento de proyecto contiene el esquema del proyecto ( id, nombre, ubicación, etc. ) y una subcolección denominada actividades .
  5. La subcolección de actividades tiene su propio esquema ( id, tipo, categoría, etc... ) y 6 subcolecciones más, cada una representa un tipo de actividad.
  6. cada subcolección de actividad tiene su propio esquema. No más subcolecciones.

Ahora, lo bueno de esto es que si elijo obtener todas las organizaciones, obtendré solo los documentos de la colección de la organización y NO las subcolecciones incrustadas ( proyectos , etc. ) mientras que en MongoDB , obtendría TODO por documento .

¿Cómo logro los mismos documentos anidados con su propia estructura de documentos anidados con el efecto de carga diferida en MongoDB?

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

¿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 de 16 MB . 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 la colección de organizaciones similar al que tiene en Firestore.
  2. Cada proyecto debe tener un documento en la colección de proyectos que contenga un campo "ID de organización" para que pueda consultar los 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 identificación única.
  3. Cada actividad debe tener un documento en la colección de actividades que contenga un campo "ID del proyecto" para que se puedan recuperar las actividades de un proyecto específico.

ingrese la descripción de la imagen aquí

projectID campos de ID de organizationID y de ID de proyecto adicionales aunque tenga _id en caso de que desee tener los ID de documentos de Firestore allí para facilitar las consultas en paralelo.

No tiene que preocuparse por el límite de tamaño de documento de 16 MB de esta manera y será más fácil consultar proyectos y actividades siempre que tenga las ID correctas.

Consulta de 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.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda