Los campos de búsqueda permiten crear un gráfico que combina datos de varias colecciones en la misma base de datos. Un campo de búsqueda incorpora documentos de una segunda colección cuyos valores corresponden a un campo de la fuente de datos principal del gráfico.
Los campos de búsqueda son útiles para aprovechar las relaciones padre/hijo y clave principal/clave externa entre colecciones, o en cualquier situación en la que un campo de una colección haga referencia a un campo de otra. Los campos de búsqueda utilizan $lookup para recuperar documentos coincidentes de una colección remota.
Crear un nuevo campo de búsqueda
Puede crear un campo de búsqueda desde cualquier campo en la fuente de datos de su gráfico que no sea un Objeto incrustado que contiene datos coincidentes con un campo de otra colección. La colección remota debe:
Una fuente de datos de gráficos existente.
Parte de la misma base de datos que la colección local.
Nota
También puede utilizar la colección local como fuente de campo de búsqueda.
Para agregar un campo de búsqueda, pase el mouse sobre un campo existente y haga clic en el icono ellipsis (...) A la derecha del nombre del campo. Seleccione Lookup field en el menú desplegable. Aparecerá una ventana modal:

Seleccione la colección y el campo deseados en los menús desplegables. El campo remoto debe contener al menos un documento con datos que coincidan con el campo local; de lo contrario, el campo de búsqueda estará vacío.
Tiene la opción de devolver todos los documentos coincidentes de la colección externa o solo el primero. Se recomienda devolver todos los documentos coincidentes para relaciones uno a varios, como las relaciones padre-hijo y las relaciones de clave principal. Se recomienda devolver solo el primer documento para relaciones uno a uno y varios a uno, como los códigos de datos de referencia. Si desea devolver solo el primer documento coincidente, marque la opción Return only first matching document.
Gráficos sugiere un nombre para el nuevo campo, pero puede introducir el nombre que prefiera. Haga clic en Save para crear el nuevo campo.
El nuevo campo aparece con un ícono binoculars, lo que indica que es un campo de búsqueda.
Importante
Asegúrese de que cualquier campo que utilice como campo de búsqueda esté correctamente indexado. Las operaciones de búsqueda en un campo no indexado en una colección grande pueden causar problemas de rendimiento importantes o tiempos de espera agotados.
Para eliminar un campo de búsqueda de su panel de campos, pase el cursor sobre él y haga clic en el ellipsis (...) a la derecha del nombre del campo. Seleccione Remove field en el menú desplegable.
Ejemplo
El siguiente ejemplo utiliza dos fuentes de datos, una llamada product_catalog
y uno llamado orders.
La colección product_catalog contiene los siguientes documentos:
{ "_id" : 76234, "item" : "21 inch monitor" } { "_id" : 38921, "item" : "USB C cable" } { "_id" : 21167, "item" : "keyboard" } { "_id" : 90252, "item" : "60 GB external hard drive" }
La colección orders contiene los siguientes documentos:
{ "_id" : 1, "sku": 38921, "quantity": 50 } { "_id" : 2, "sku": 21167, "quantity": 75 } { "_id" : 3, "sku": 76234, "quantity": 15 } { "_id" : 4, "sku": 21167, "quantity": 20 }
Los registros de la colección orders utilizan el campo sku para hacer referencia al campo _id de la colección product_catalog.
El objetivo es crear un gráfico de columnas que muestre el número de elementos pedidos. El siguiente gráfico utiliza orders como fuente de datos. El campo sku_lookup_product_catalog de búsqueda se crea a partir del orders.sku campo. Utiliza la product_catalog colección como fuente de datos remota y product_catalog._id como campo remoto.
El gráfico utiliza product_catalog.item como eje X y orders.quantity como eje Y.
