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.
Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
MongoDB Branding Shape
Click here >
Docs Menu

Comenzar con las extensiones MongoDB para Django

En este tutorial, puedes aprender a utilizar el paquete Django MongoDB Extensions en tu proyecto Django.

Django MongoDB Extensions es un paquete que amplía el backend de Django MongoDB con herramientas para desarrolladores. Este tutorial muestra cómo configurar el panel del lenguaje de consulta de MongoDB (MQL) en Django MongoDB Extensions para usarlo con la barra de herramientas de depuración de Django. Este panel muestra las consultas MQL que ejecuta tu aplicación durante una solicitud, con sus tiempos de ejecución y planes de consulta.

Antes de comenzar este tutorial, completa las siguientes tareas previas:

  • Crea un proyecto Django que use Django MongoDB Backend. Para crear un proyecto, consulta el tutorial Comenzar con Django MongoDB Backend.

  • Instala y configura la Django Debug Toolbar en tu proyecto. Para ver las instrucciones, consulta Instalación en la documentación de la Django Debug Toolbar.

Los siguientes pasos te muestran cómo instalar Django MongoDB Extensions, cómo configurar el panel MQL y cómo ver las consultas de MongoDB en Django Debug Toolbar.

1

Ejecute el siguiente comando para instalar Django MongoDB Extensions:

pip install django-mongodb-extensions
2

Navega al archivo settings.py de tu proyecto y agrega "django_mongodb_extensions" a la configuración INSTALLED_APPS, como se muestra en el siguiente ejemplo:

INSTALLED_APPS = [
'django_mongodb_extensions',
# ... your other apps
]
3

Por defecto, la Barra de herramientas de depuración de Django funciona sin requerir una configuración de DEBUG_TOOLBAR_PANELS. Sin embargo, dado que MongoDB no utiliza SQL, la configuración más común para las aplicaciones de MongoDB es reemplazar el panel SQL con el panel MQL. Añada la siguiente configuración a su archivo settings.py, lo cual establece DEBUG_TOOLBAR_PANELS con valores por defecto pero reemplaza SQLPanel por MQLPanel:

DEBUG_TOOLBAR_PANELS = [
'debug_toolbar.panels.history.HistoryPanel',
'debug_toolbar.panels.versions.VersionsPanel',
'debug_toolbar.panels.timer.TimerPanel',
'debug_toolbar.panels.settings.SettingsPanel',
'debug_toolbar.panels.headers.HeadersPanel',
'debug_toolbar.panels.request.RequestPanel',
'django_mongodb_extensions.mql_panel.MQLPanel',
'debug_toolbar.panels.staticfiles.StaticFilesPanel',
'debug_toolbar.panels.templates.TemplatesPanel',
'debug_toolbar.panels.alerts.AlertsPanel',
'debug_toolbar.panels.cache.CachePanel',
'debug_toolbar.panels.signals.SignalsPanel',
'debug_toolbar.panels.community.CommunityPanel',
'debug_toolbar.panels.redirects.RedirectsPanel',
'debug_toolbar.panels.profiling.ProfilingPanel',
]

Tip

Configuraciones opcionales

Para aprender a configurar los ajustes opcionales que personalizan el comportamiento del panel MQL, consulta el README en el repositorio Django MongoDB Extensions en GitHub.

4

Inicie su servidor de desarrollo ejecutando el siguiente comando:

python manage.py runserver

Navegar a cualquier página de tu aplicación que realice consultas a MongoDB. Abre la Django Debug Toolbar y selecciona el panel MQL para ver las consultas de MongoDB ejecutadas durante la solicitud, incluidos sus tiempos de ejecución y los planes de explicación.

5

Si configuras las extensiones Django MongoDB para la aplicación creada en el tutorial Comenzar con el backend de Django MongoDB, puedes navegar a http://127.0.0.1:8000/recent_movies/ para ver las consultas MongoDB ejecutadas durante la solicitud.

La barra de herramientas de depuración de Django aparece en el lado derecho de la página. Selecciona la etiqueta MQL para ver la query de MongoDB utilizada para mostrar las películas recientes, que se asemeja al siguiente código:

db.movies.aggregate([{'$addFields': {'released': '$released'}}, {'$sort': SON([('released', -1)])}, {'$limit': 5}])

Luego, puede explorar la información de la query haciendo clic en los siguientes botones:

  1. Seleccione el botón + a la izquierda de la query para ver el traceback, que se asemeja al siguiente código:

    /path/to/site-packages/django/contrib/staticfiles/handlers.py in __call__(80)
    return self.application(environ, start_response)
    /path/to/djangoquickstart/sample_mflix/views.py in recent_movies(11)
    return render(request, "recent_movies.html", {"movies": movies})
    /path/to/site-packages/django/shortcuts.py in render(25)
    content = loader.render_to_string(template_name, context, request, using=using)
    ...
  2. Selecciona el botón Query a la derecha de la pregunta, en la columna ACTION, para ver el MQL impreso de forma bonita. Este MQL se asemeja al siguiente código:

    db.movies.aggregate(
    [
    {
    "$addFields": {
    "released": "$released"
    }
    },
    {
    "$sort": {
    "released": -1
    }
    },
    {
    "$limit": 5
    }
    ]
    )
  3. Seleccione el botón Explain a la derecha de la consulta, en la columna ACTION, para ver el plan de explicación de la consulta. Este plan se asemeja al siguiente código:

    {
    "explainVersion": "1",
    "stages": [
    {
    "$cursor": {
    "queryPlanner": {
    ...
    },
    "executionStats": {
    ...
    }
    },
    "nReturned": 21351,
    "executionTimeMillisEstimate": 59
    },
    {
    "$addFields": {
    "released": "$released"
    },
    "nReturned": 21351,
    "executionTimeMillisEstimate": 70
    },
    {
    "$sort": {
    "sortKey": {
    "released": -1
    },
    "limit": 5
    },
    ...
    }
    ],
    ...
    }

¡Felicitaciones por completar el tutorial de Extensiones de Django MongoDB! Ahora tienes una aplicación de Django que utiliza las Extensiones MongoDB de Django para ver y analizar consultas de MongoDB en la Django Debug Toolbar.

Para obtener más información sobre el paquete Django MongoDB Extensions, consulta django-mongodb-extensions en PyPI y el django-mongodb-extensions repositorio en GitHub.

Para aprender a consultar sus datos, consulte la guía Especificar una query.