2. Bases de datos NoSQL

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();

Figura 88. Mostrar la información del gen uc009vis.3.
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.