2.10. Buscar en un array de documentos
Si nos fijamos en la estructura del fichero JSON importado, solo contiene un documento JSON. Y en uno de los campos, el llamado knownGene contiene un array de documentos JSON, y cada documento del array contiene información de los genes del cromosoma 1: nombre, hebra, cromosoma, etc.
Esto nos obliga a conocer cómo se trabaja con los contenidos de los arrays si queremos gestionar correctamente esta información.
Tenemos que usar el dot.notation.
Por ejemplo, vamos a mostrar la información del gen uc009vis.3.
Esta es la instrucción:
db.chr1.find({ "knownGene.name": "uc009vis.3"}, {"knownGene.$": 1}).pretty();

Fuente: elaboración propia.
Vemos como, para referirnos al nombre del gen, escribimos "knownGene.name":
o sea, el nombre del campo del documento que es un array de documentos JSON, el knownGene
, punto y a continuación el nombre del campo de los documentos que se encuentran en el array name
. Con knownGene.$": 1
indicamos que nos muestre todos los campos de los documentos encontrados en el array knownGene
.
El dot.notation
también nos sirve para referirnos a campos de documentos embebidos.