2. Bases de dades NoSQL

2.10. Buscar en un array de documents

Si ens fixem en l’estructura del fitxer JSON importat, només conté un document JSON. I en un dels camps, l’anomenat knownGene, conté un array de documents JSON, i cada document de l’array conté informació dels gens del cromosoma 1: nom, cadena, cromosoma, etc.

Això ens obliga a conèixer com es treballa amb els continguts dels arrays si volem gestionar correctament aquesta informació.

Hem de fer servir el dot.notation.

Per exemple, mostrarem la informació del gen uc009vis.3.

Aquesta és la instrucció:

db.chr1.find({ "knownGene.name": "uc009vis.3"}, {"knownGene.$": 1}).pretty();

Figura 88. Mostrar la informació del gen uc009vis.3.
Font: elaboració pròpia.

Veiem com per referir-nos al nom del gen escrivim "knownGene.name": és a dir, el nom del camp del document que és un array de documents JSON, el knownGene, punt i a continuació el nom del camp dels documents que es troben a l’array name. Amb knownGene.$": 1 indiquem que ens mostri tots els camps dels documents trobats a l’array knownGene.

El dot.notation també ens serveix per referir-nos a camps de documents embeguts.