Para agentes de IA: hay un índice de documentación disponible en https://www.mongodb.com/es/docs/llms.txt — versiones en markdown de todas las páginas están disponibles agregando .md a cualquier ruta URL.
Docs Menu

Agregar un campo de búsqueda

Los campos de búsqueda permiten crear una gráfica que une datos de múltiples colecciones en la misma base de datos. Un campo de búsqueda recupera documentos de una segunda colección cuyos valores corresponden a un campo en la fuente de datos principal de tu gráfica.

Los campos de búsqueda son útiles para aprovechar las relaciones de padre/hijo y llave primaria/clave foránea entre colecciones, o cualquier situación en la que un campo en una colección haga referencia a un campo en otra colección. Los campos de búsqueda utilizan $lookup para recuperar documentos coincidentes de una colección remota.

Puedes crear un campo de búsqueda a partir de cualquier campo en la fuente de datos de tu gráfica que no sea un objeto incrustado y que contenga datos coincidentes con un campo en otra colección. La colección remota debe ser:

  • Una fuente de datos Charts 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 añadir un campo de búsqueda, poner el mouse sobre un campo existente y hacer clic en el ellipsis (...) a la derecha del nombre del campo. Selecciona Lookup field del menú desplegable. Aparece una ventana modal:

Ventana modal del campo de búsqueda
haga clic para ampliar

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.

Charts sugiere un nombre para el nuevo campo, pero puedes introducir un nombre de tu elección si lo prefieres. Haz 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.

El siguiente ejemplo utiliza dos fuentes de datos, una llamada product_catalog y otra llamada 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 en la colección orders utilizan el campo sku para referenciar el campo _id en 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.

Gráfica de ejemplo de campo de búsqueda