La /query El comando ayuda a generar queries a partir de un lenguaje natural contra un clúster MongoDB conectado. La extensión de MongoDB para Github Copilot proporciona información de esquema subyacente de las colecciones relevantes a GitHub Copilot para generar una respuesta. Si no especificas una colección en tu prompt, el chat te pedirát seleccionar una colección relevante.
Cuando el LLM genera una query, puedes abrir la query en un archivo playground o ejecutar la query directamente en tu colección.
Documentos de muestra
Puede configurar la Extensión MongoDB para Github Copilot para incluir valores de campo de muestra de su colección con el comando /query. Cuando MongoDB incluye documentos de muestra con el comando /query, el modelo de IA recibe ejemplos de datos reales, lo que le ayuda a generar consultas más precisas.
Los documentos de muestra están deshabilitados por defecto. Siga los siguientes pasos para habilitar la inclusión de valores de campo de muestra:
Pasos
Navega hasta el Configuración de Visual Studio Code
Cuando se activa, los documentos de muestra se pasan automáticamente al modelo con el siguiente comportamiento:
Se incluyen hasta 3 documentos de muestra para proporcionar contexto.
Si incluir 3 documentos de muestra supera el tamaño máximo de contexto para el modelo de IA, la Extensión MongoDB para Github Copilot solo incluye 1 documento.
MongoDB limita los campos de arreglo en los documentos de muestra a los primeros 3 elementos.
MongoDB trunca los campos de string a los primeros 20 caracteres para reducir el tamaño del contexto, al tiempo que preserva la información de la estructura de datos.
Ejemplos
Generar una query
Considere la colección users en el Base de datos de muestra de Mflix. Cada documento de la colección tiene la siguiente estructura:
{ _id: { "$oid": "59b99db4cfa9a34dcd7885b6" }, name: "Kayden Washington", email: "KW@email.com", password: "11222021" }
Una vez que te conectes a la implementación que contiene la colección users, puedes pedirle al chat de GitHub Copilot que genere una query para encontrar el documento en la colección users que tiene el valor de name en Kayden Washington.
@MongoDB /query In the sample_mflix database, find a document in the users collection with the name of Kayden Washington.
El chat de GitHub Copilot utiliza la extensión MongoDB para GitHub Copilot para generar la siguiente consulta utilizando el conocimiento del esquema de su base de datos:
use(`sample_mflix`); db.getCollection('users').findOne({ name: 'Kayden Washington' });
Una vez que la MongoDB Extension para Github Copilot genera la query, puedes optar por ejecutar la query directamente o abrir la query en un playground.

Compilar un pipeline de agregación
También puede usar la extensión de MongoDB para Github Copilot para compilar pipelines de agregación. Considere la colección users en la Base de Datos de Ejemplo Mflix. Cada documento de la colección tiene la siguiente estructura:
{ _id: { "$oid": "59b99db4cfa9a34dcd7885b6" }, name: "Kayden Washington", email: "KW@email.com", password: "11222021" }
Una vez que te conectes a la implementación que contiene la colección users, puedes pedirle a GitHub Copilot Chat que genere un pipeline de agregación.
@MongoDB /query Generate an aggregation pipeline on the users collection that first sorts documents alphabetically by name and then removes the password field from each document.
La extensión MongoDB para Github Copilot genera la siguiente canalización de agregación:
use('sample_mflix'); db.getCollection('users').aggregate([ { $sort: { name: 1 } }, { $project: { password: 0 } } ]);
Una vez que la extensión MongoDB para Github Copilot genera la query, puedes elegir ejecutar el pipeline directamente o abrir el pipeline en un playground.

También puede mejorar gradualmente la pipeline de agregación:
@MongoDB /query Add a stage to my pipeline that adds a username field to each document containing the user's email without the email domain.
La extensión MongoDB para Github Copilot devuelve el siguiente pipeline de agregación:
use('sample_mflix'); db.getCollection('users').aggregate([ { $sort: { name: 1 } }, { $project: { password: 0 } }, { $addFields: { username: { $arrayElemAt: [{ $split: ["$email", "@"] }, 0] } } } ]);
