Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

742
Views
¿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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!