Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /

Asistente Inteligente en Compass

El asistente inteligente es una herramienta potenciada por IA diseñada para brindar soporte de desarrollo integrado de MongoDB en MongoDB Compass. Responde preguntas en lenguaje natural, ayuda a depurar errores y proporciona orientación para la optimización del rendimiento.

Para usar el asistente inteligente en MongoDB Compass, primero habilita las funcionalidades de IA en la configuración.

1
Sistema operativo
Descripción
Atajo de teclado

Windows / Linux

En la barra de menú superior, haz clic en Edit.

Ctrl + ,

macOS

En la barra de menú superior, haz clic en MongoDB Compass.

+ ,

2
3
4

Para obtener más información sobre el uso de la IA generativa con MongoDB Compass, consulte:

Para obtener más información sobre cómo alternar las funciones de IA en MongoDB Compass, consulte Habilitar consultas en lenguaje natural.

Para acceder al asistente inteligente en MongoDB Compass, haz clic en el panel lateral con el . Esto abre el asistente, donde puedes realizar una variedad de preguntas relacionadas con los errores de conexión de tu MongoDB Compass, los resultados de las consultas, las estadísticas del plan de explicación y más.

|compass| Página con el cajón de IA contraído
haga clic para ampliar

Figura 1. La página de inicio de MongoDB Compass con el asistente colapsado.

|brújula| Página con cajón de IA abierto
haga clic para ampliar

Figura 2. La página de inicio de MongoDB Compass con el asistente expandido.

Las herramientas de solo lectura en el contexto asistente de MongoDB Compass lo obtienen del contexto de su tarea actual o ejecutan operaciones de base de datos en su implementación conectada de MongoDB con aprobación humana. A diferencia de las respuestas conversacionales, estas herramientas pueden realizar queries reales en bases de datos y devolver datos en vivo de tu base de datos.

Las herramientas de asistencia presentan las siguientes características clave:

  • Solo lectura: las herramientas no pueden modificar, insertar, actualizar ni eliminar datos.

  • Aprobado por el usuario: Cada ejecución de la herramienta requiere la confirmación explícita del usuario.

  • Contextual: El asistente tiene en cuenta tu base de datos, colección y conexión actuales al decidir llamar a las herramientas.

  • Datos en tiempo real: Los resultados provienen de su implementación de MongoDB conectado en tiempo real.

Las siguientes herramientas recuperan contenido sensible para los usuarios y requieren confirmación. Estas herramientas no interactúan con la base de datos, pero requieren la confirmación del usuario antes de usarlas:

Nombre de la herramienta Compass
Descripción

get-current-query

Extrae los parámetros activos de las consultas de MongoDB desde la barra de consultas

get-current-pipeline

Extrae la pipeline de agregación activa del constructor de agregación

Nombre de la herramienta de base de datos
Descripción

list-databases

Muestra todas las bases de datos disponibles en tu implementación de MongoDB con sus tamaños de almacenamiento.

list-collections

Muestra todas las colecciones dentro de una base de datos específica.

find

Recupera los documentos reales de una colección que coinciden con criterios de búsqueda específicos.

count

Devuelve rápidamente el número total de documentos en una colección sin recuperar los propios documentos.

aggregate

Realiza operaciones complejas de procesamiento de datos como agrupar, filtrar, transformar y calcular estadísticas en documentos.

collection-indexes

Lista todos los índices definidos en una colección.

collection-schema

Analiza una colección para revelar la estructura de los documentos, incluidos los nombres de campo y los tipos de datos.

collection-storage-size

Informa sobre el espacio físico en disco ocupado por una colección, incluidos tanto los datos como los índices.

db-stats

Proporciona una visión general completa del estado de salud de la base de datos, incluyendo el recuento de colecciones, el total de documentos, el uso de almacenamiento y las estadísticas de índices.

mongodb-logs

Recupera registros recientes del servidor para solucionar problemas, supervisar el rendimiento y realizar auditorías de seguridad.

explain

Muestra el plan detallado de ejecución de queries y las estadísticas de rendimiento, revelando cómo MongoDB procesa una query y si utiliza índices.

Nota

Las etapas $out y $merge de la canalización de agregación no se admiten en la llamada a herramientas porque realizan operaciones de escritura. El asistente solo admite herramientas de solo lectura.

1

Las herramientas están habilitadas por defecto, pero puedes activarlas o desactivarlas utilizando el botón Tools en la barra de entrada.

2

Asegúrate de tener una conexión activa y de estar visualizando la página correspondiente. Para hacer una pregunta, debes estar en una pestaña que esté relacionada con tu conexión activa.

3

Envía una consulta sobre tus datos, por ejemplo: "Listar todas las bases de datos".

4

El asistente detecta tu intención y muestra una tarjeta de herramienta en estado pendiente. Esta lista enumera los posibles elementos que la tarjeta de herramientas puede mostrar:

  • Operación del nombre de la herramienta

  • Implementación (host/punto final)

  • Base de datos y colección que se están consultando

  • Cualquier parámetro o filtro

  • Run y botones Cancel

En el ejemplo anterior, la tarjeta de la herramienta se muestra para "list-databases".

5
6

Resultado de ejemplo:

Here are the databases found on your MongoDB deployment:
- sample_mflix (Size: 183,685,120 bytes)
- admin (Size: 364,544 bytes)
- local (Size: 21,907,722,240 bytes)
If you want details about collections in any of these databases,
just let me know!

Los siguientes escenarios muestran varios usos del asistente inteligente en MongoDB Compass.

Si recibes un mensaje de error de conexión, aparecerá una ventana emergente que te indicará usar el Asistente de MongoDB para depurar el error. Hacer clic en Debug hace que el asistente automáticamente genere una pregunta para diagnosticar el error.

Diagnose why my Compass connection is failing and help me debug it.
Connection string (password redacted):
mongodb+srv://user:****@cluster0.pndqllj.mongodb.net/
Error message:
querySrv ECONNREFUSED
The error message querySrv ECONNREFUSED in MongoDB Compass typically
points to a network issue when Compass is trying to discover your Atlas
cluster using DNS SRV records in your connection string.
Here are the most common causes and solutions for this issue:
1. Incorrect Hostname or Cluster Name
- Ensure that the cluster hostname (cluster0.hrdfe.mongodb.net) in
your connection string matches what is shown in your Atlas dashboard.
- Typos or a deleted/renamed cluster will cause connection refusal.
2. Network Restrictions or Firewall Blocking
- Atlas clusters operate on port 27017. Compass must be able to reach that port through your network.
- Firewalls, VPNs, or proxies might block outbound connections to MongoDB Atlas.
- Try connecting from a different network/location to rule out local filtering.
- You can test if your network allows access to this port using http://portquiz.net:27017/.
3. DNS Issues
- Compass uses DNS to resolve the SRV record in the connect string. If your DNS settings are incorrect or your network blocks DNS SRV lookups, connection will fail.
Try restarting your computer or flushing your DNS cache.
4. Cluster Status
- Verify that your MongoDB Atlas cluster is running and not paused
or shut down.
5. Compass Version
- Make sure you’re using an up-to-date version of MongoDB Compass.
Atlas typically requires recent client versions.
Recommended Steps to Debug:
- Double-check your Atlas cluster name and hostname.
- Ensure your local firewall allows outbound connections to “*.mongodb.net” over port 27017.
- Check that the Atlas cluster is running (not paused).
- Make sure your connection string is correct.
- Use another network or device to see if the issue persists.
If you’re still having trouble after these checks, please provide more
details about your environment (e.g., Compass version, operating system,
network setup), and I’ll be happy to help you further!
For further reading, I recommend checking the Compass troubleshooting
documentation, which covers these scenarios in detail before making any
major changes to your environment.

Pídele al asistente inteligente que analice la salida de tu query en MongoDB Compass:

Interpret this explain plan for me.
## Summary
- **Query Logic:** This pipeline counts the number of Italian restaurants in Manhattan by first filtering documents and then aggregating the count.
- **Performance:** Fair
- **Recommendations:** Create a compound index on `{ borough: 1, cuisine: 1 }` to optimize document retrieval.
## Details
### Query Logic
1. `$match`: Filters documents where `borough` is "Manhattan" and `cuisine` is "Italian".
2. `$count`: Counts the number of documents matching the filter and outputs the total.
### Performance Analysis
- The winning plan uses an index scan on the `cuisine` field (`cuisine_1`) and applies an in-memory filter for `borough` ("Manhattan").
- Both `totalKeysExamined` and `totalDocsExamined` are high (43,207), which implies that every document with `cuisine: "Italian"` is examined and then filtered by `borough`.
- No compound index exists, meaning MongoDB cannot efficiently combine both filter criteria in a single index lookup.
- The pipeline does properly filter before counting, but index usage is only partial, causing increased resource usage.
### Recommendations
- Create a compound index on `{ borough: 1, cuisine: 1 }` to allow MongoDB to retrieve documents matching both criteria directly from the index, minimizing documents examined.
- This optimization will reduce execution time and system load without changing the output of your aggregation pipeline.
Below is the recommended Aggregation Pipeline. This optimized Aggregation Pipeline will leverage the compound index to scan fewer documents, as both filter criteria are present in the index.
```json
[
{ "$match": { "borough": "Manhattan", "cuisine": "Italian" } },
{ "$count": "totalItalianRestaurants" }
]
```
### Follow-Up Questions
1. How do I create a compound index in MongoDB Compass or via a shell command?
2. What other fields should I consider adding to my indexes for restaurant lookups?
3. How can I further optimize aggregations when working with larger datasets?

Los siguientes ejemplos demuestran preguntas que puede hacerle al asistente inteligente sobre las funciones y consultas de MongoDB Compass.

How is MongoDB data modeling different from data modeling with a relational
database?
MongoDB data modeling differs from relational database (RDBMS) data
modeling in some important ways:
1. Document-Oriented vs. Table-Oriented
- MongoDB stores data as flexible, hierarchical JSON-like documents.
- Relational databases use tables with fixed schemas and columns.
2. Schema Flexibility
- In MongoDB, collections can contain documents with different structures. Schema enforcement is optional.
- RDBMS tables have a strict schema that enforces data types and relationships.
3. Embedding vs. Normalization
- MongoDB encourages embedding related data inside documents when appropriate (denormalization). Example: An order document may include an array of items directly inside it.
- Relational databases emphasize normalization—splitting data across tables connected by foreign keys.
4. Relationships
- MongoDB does support references between documents (similar to foreign keys), but joins are less central and not as efficient as in RDBMS.
- RDBMSs use normalized data and JOIN operations to relate tables efficiently.
5. Performance & Scaling
- MongoDB’s data model enables horizontal scaling (sharding), making it well-suited for large, distributed datasets.
- RDBMS scaling typically relies on vertical scaling or complex clustering; JOINs can become expensive as data grows.
6. Use Cases and Design Philosophy
- MongoDB models are often designed to optimize common query patterns, reducing the need for joins and complex queries.
- RDBMS models are designed for transactional consistency and for representing organized, well-structured relationships.
In summary, MongoDB encourages a more flexible, application-driven
approach to modeling, while relational databases rely on rigid schemas
and normalized relationships. Compass provides tools to visually explore
your document structures and relationships, which can be especially
helpful as your model evolves.
How can I combine multiple conditions in a single $search query?
To combine multiple conditions in a single $search query in MongoDB Atlas
Search (including Compass), you should use the compound operator. The
compound operator allows you to specify multiple criteria using must,
mustNot, filter, and should clauses.
Example: Combine Multiple Conditions
Suppose you want to:
- Match documents where the plot field contains "baseball"
- Exclude documents where the genres field contains "Comedy" or "Romance"
Your $search stage would look like this:
{
"$search": {
"compound": {
"must": [
{
"text": {
"query": "baseball",
"path": "plot"
}
}
],
"mustNot": [
{
"text": {
"query": ["Comedy", "Romance"],
"path": "genres"
}
}
]
}
}
}

Volver

Agregación inmediata

En esta página