Saltar al contenido principal

Global Access

Permite realizar queries sobre el root del JSON de entrada, lo que ayuda a mover información del nivel superior a niveles más internos.

Notación

Se antepone un &. y luego se procede igual que en access.

const query = `{
product {
id,
name,
&.provider.name
}
}`

Válido en:

  • select y access
  • Cómo argumentos para function
  • rename

Ejemplo

Considerando lo siguiente:

const input = {
provider: {
id: 10,
name: "TheOne"
},
transaction: {
id: 100,
product_id: 19,
product_name: "Pants"
}
}

Aplicando esta query:

const query = `{
transaction {
id,
product: {
id: product_id,
name: product_name,
provider: &.provider.name
}
}
}`

Se obtiene esto:

const result = {
transaction: {
id: 100,
product: {
id: 19,
name: 'Pants',
provider: 'TheOne'
}
}
}

Por qué new object query?

Puede surgir la duda de porque no simplemente utilizar select para nombrar la agrupación. No existe ninguna query basada en el campo product y en los datos de entrada tampoco existe esta clave, si se utiliza select el resultado será:

const result = {
transaction: {
id: 100,
product: null
}
}

Esto se debe a que como no existe ningún campo product en el cuál realizar la selección simplemente se devuelve null como lo acordado anteriormente.

note

Otro problema sobre utilizar la selección es que estará agregando campos al índice, que no debería tener.