Nota
La función API estable requiere MongoDB Server 5.0 o posterior.
Overview
En esta guía, puedes aprender a especificar la compatibilidad de la API estable al conectarse a una implementación de MongoDB.
La funcionalidad Stable API obliga al servidor a ejecutar operaciones con comportamientos compatibles con la versión de la API que especifiques. Al actualizar el controlador o el servidor, la versión de la API cambia, lo que puede afectar el comportamiento de estas operaciones. El uso de la API Estable garantiza respuestas coherentes del servidor y proporciona estabilidad a largo plazo de la API para tu aplicación.
Las siguientes secciones describen cómo se puede habilitar y personalizar la Stable API para su cliente de MongoDB. Para obtener más información sobre la Stable API, incluida una lista de los comandos que admite, consulta API estable en el manual del servidor MongoDB.
Activar la API estable
Para habilitar la API Stable, realiza los siguientes pasos:
Construir un
ServerApiobjeto y especificar una versión de Stable API. Debe utilizar una versión de Stable API definida en el enumServerApiVersion.Construye un objeto
MongoClient, pasando el objetoServerApipara el argumentoserver_api.
El siguiente ejemplo de código muestra cómo especificar la versión de la API estable 1. Elija el Synchronous o la pestaña Asynchronous para ver el código correspondiente:
from pymongo import MongoClient from pymongo.server_api import ServerApi client = MongoClient("mongodb://<db_username>:<db_password>@<hostname:<port>", server_api=ServerApi("1"))
from pymongo import AsyncMongoClient from pymongo.server_api import ServerApi client = AsyncMongoClient("mongodb://<db_username>:<db_password>@<hostname:<port>", server_api=ServerApi("1"))
Una vez creada una instancia MongoClient con una versión de API específica, todos los comandos que ejecute con el cliente usarán dicha versión. Si necesita ejecutar comandos con más de una versión de la API estable, cree una instancia MongoClient.
Configura la Stable API
La siguiente tabla describe los parámetros de la clase ServerApi. Se pueden usar estos parámetros para personalizar el comportamiento de la Stable API.
Nombre de la opción | Descripción |
|---|---|
estricto | Optional. When True, if you call a command that isn't part of
the declared API version, the driver raises an exception.Default: False |
errores_de_uso_no_recomendado | Optional. When True, if you call a command that is deprecated in the
declared API version, the driver raises an exception.Default: False |
El siguiente ejemplo de código le muestra cómo puede utilizar estos parámetros al construir un objeto ServerApi. Selecciona la pestaña Synchronous o Asynchronous para ver el código correspondiente:
from pymongo import MongoClient from pymongo.server_api import ServerApi client = MongoClient("mongodb://<db_username>:<db_password>@<hostname:<port>", server_api=ServerApi("1", strict=True, deprecation_errors=True))
from pymongo import AsyncMongoClient from pymongo.server_api import ServerApi client = AsyncMongoClient("mongodb://<db_username>:<db_password>@<hostname:<port>", server_api=ServerApi("1", strict=True, deprecation_errors=True))
Solución de problemas
Campo no reconocido 'apiVersion' en el servidor
PyMongo genera esta excepción si se especifica una versión de API y se conecta a un servidor MongoDB que no admite la Stable API. Asegúrese de conectarse a una implementación que ejecute MongoDB Server v5.0 o posterior.
Se proporcionó apiStrict:true, pero el conteo de comandos no está en la Versión API
PyMongo genera esta excepción si su MongoClient ejecuta una operación que no está en la versión de la API estable especificada. Para evitar este error, utilice una operación alternativa compatible con la versión de la API estable especificada o configure la opción strict como False al construir su objeto ServerApi.
Documentación de la API
Para obtener más información sobre el uso de la Stable API con PyMongo, consulta la siguiente documentación de la API: