es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Es posible consultar cualquier subnodo de una jerarquía de árbol, independientemente de la profundidad, utilizando Cosmos DB SQL?

Dada una estructura jerárquica en formato JSON:

{
  "id": 1,
  "text": "Root",
  "children": [
    {
      "id": 2,
      "nodeType": "foo",
      "children": [
        {
          "id": 3,
          "nodeType": "foo",
          "children": [
            {}
          ]
        },
        {
          "id": 6,
          "nodeType": "bar",
          "children": [
            {}
          ]
        }
      ]
    },
    {
      "id": 4,
      "nodeType": "foo",
      "children": [
        {}
      ]
    }
  ]
}

La profundidad de la jerarquía es desconocida. ¿Existe alguna forma eficiente de encontrar los IDs de todos los subobjetos donde nodeType == foo utilizando una consulta Cosmos SQL, lo cual resultaría en los IDs 2, 3 y 4?

Estoy pensando que la estructura simplemente no es correcta y sería mejor guardar los subobjetos como un arreglo plano y mantener la información de la jerarquía por separado.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Sí, es posible encontrar los ID de todos los sub-objetos donde nodeType == foo utilizando una consulta de Cosmos SQL. La consulta utilizaría el operador JOIN para unir cada nivel de la jerarquía y filtrar solo los nodeType == foo. Sin embargo, dependiendo del tamaño de la jerarquía, esta consulta puede no ser eficiente.

    Como sugeriste, puede ser mejor guardar los sub-objetos como un arreglo plano en lugar de una estructura jerárquica. Esto facilitaría la consulta y filtrado de los datos con Cosmos SQL. Además, al mantener separada la información del árbol, todavía puedes reconstruir la estructura jerárquica original si es necesario.

Comments are closed.