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 de padre/hijo y llave primaria/llave foránea entre colecciones, o en cualquier situación en la que un campo de una colección haga referencia a un campo de otra colección. Uso de campos de búsqueda $lookup para recuperar documentos coincidentes de una colección remota.
Crear un nuevo campo de búsqueda
Puedes crear un campo de búsqueda desde cualquier campo en la fuente de datos de tu gráfica 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 se 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. Selecciona Lookup field en el menú desplegable. Aparece una ventana modal:

Selecciona 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 o el campo de consulta estará vacío.
Tienes la opción de devolver todos los documentos coincidentes de la colección externa o solo el primer documento coincidente. Se recomienda devolver todos los documentos que coincidan en relaciones de uno a muchos, como las relaciones padre/hijo y llave primaria. Se recomienda devolver solo el primer documento para relaciones uno a uno y muchos a uno, como códigos de datos de referencia. Si solo quieres retornar el primer documento coincidente, marca el botón de 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 icono de 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á adecuadamente indexado. Las operaciones de búsqueda en un campo no indexado en una gran colección pueden causar problemas significativos de rendimiento o tiempos de espera.
Para remover un campo de búsqueda de tu panel de campos, pasa el ratón sobre el campo de búsqueda y haz clic en ellipsis (...) a la derecha del nombre del campo. Selecciona 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 una gráfica de columnas que muestre el número de ítems ordenados. La siguiente gráfica utiliza orders como su fuente de datos. El campo de búsqueda sku_lookup_product_catalog se crea a partir del campo orders.sku. Utiliza la colección product_catalog como su fuente de datos remota y product_catalog._id como su campo remoto.
La gráfica utiliza product_catalog.item como eje X y orders.quantity como eje Y.
