Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

743
Visualizações
¿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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda