El /query El comando ayuda a generar consultas desde un lenguaje natural contra un clúster MongoDB conectado. La extensión MongoDB para GitHub Copilot proporciona información del esquema subyacente de las colecciones relevantes a GitHub Copilot para generar una respuesta. Si no especifica una colección en su solicitud, el chat le solicitará que seleccione una.
Cuando el LLM genera una consulta, puede abrir la consulta en un archivo de juegos o ejecutarla directamente en su colección.
Documentos de muestra
Puedes configurar la extensión de MongoDB para Github Copilot para que incluya valores de campo de muestra de tu 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 estos pasos para habilitar la inclusión de valores de campo de muestra:
Pasos
Navegar hasta el Configuración de Visual Studio Code
Cuando está habilitado, 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 la inclusión de 3 documentos de muestra excede el tamaño máximo de contexto para el modelo de IA, la extensión MongoDB para Github Copilot incluye solo 1 documento.
MongoDB limita los campos de matriz en los documentos de muestra a los primeros 3 elementos.
MongoDB trunca los campos de cadena a los primeros 20 caracteres para reducir el tamaño del contexto y preservar la información de la estructura de datos.
Ejemplos
Generar una consulta
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 conectas a la implementación que contiene la colección users, puedes pedirle al chat de GitHub Copilot que genere una consulta que encuentre el documento en la colección users que tiene el valor name de 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 MongoDB para Github Copilot para crear pipelines de agregación. Considere la users colección en la base de datos de ejemplo 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 canalización 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 consulta, puede optar por ejecutar la canalización directamente o abrirla en un área de juegos.

También puedes desarrollar iterativamente tu canal 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] } } } ]);
