Overview
Una fuente de datos representa una Instancia deMongoDB Atlas en el mismo proyecto que tu aplicación. Utilizas fuentes de datos para almacenar y recuperar los datos de tu aplicación.
La mayoría de las aplicaciones se conectan a una sola fuente de datos, pero puedes configurar varias si tus datos están distribuidos en varias instancias. Define un nombre único para cada fuente de datos vinculada a tu aplicación y úsalo para hacer referencia a ella en toda la aplicación.
Las solicitudes a las fuentes de datos se enrutan a través de Atlas App Services. Por ello, App Services abre y cierra automáticamente las conexiones a la base de datos. Esto significa que no necesita preocuparse por llamar. db.close() al utilizar una fuente de datos.
Nota
Cifrado de backend
Toda la comunicación interna entre App Services y Atlas está cifrada con certificados x509.
Leer, escribir y agregar datos
Puedes leer y escribir datos en una fuente de datos desde una función del servidor o conectarte desde una aplicación cliente. Las consultas se escriben utilizando la sintaxis estándar de MongoDB.
exports = async function() { const mongodb = context.services.get("mongodb-atlas"); return mongodb .db("myDatabase") .collection("myCollection") .findOne() }
Para aprender a trabajar con una fuente de datos en una función Atlas, consulte las siguientes guías:
Para aprender a trabajar con una fuente de datos desde un SDK de Realm, consulta Query Atlas desde aplicaciones cliente.
Nota
Las fuentes de datos vinculadas no admiten todas las operaciones CRUD y de agregación de MongoDB. Algunas operaciones no están disponibles al consultar MongoDB como un usuario específico debido a la sobrecarga de la validación del esquema y las reglas de acceso a datos. Puede evitar algunas limitaciones consultando MongoDB como el usuario del sistema.
Para obtener más información sobre qué operaciones son compatibles,consulte API de CRUD y agregación.
Proteja y valide los datos
Las fuentes de datos te permiten definir reglas de acceso y esquemas de documentos para los datos que contienen. Las reglas autorizan dinámicamente a los usuarios para leer y guardar subconjuntos de tus datos y los esquemas controlan la forma y el contenido de cada documento.
Las operaciones de lectura y escritura en una fuente de datos vinculada son seguras por defecto. Un usuario no puede leer ni escribir datos a menos que una regla lo permita explícitamente. Cualquier dato insertado o modificado por un usuario autorizado debe ajustarse al esquema correspondiente.
Si no define reglas para una colección, las consultas sobre ella fallarán. Esto significa que puede exponer de forma segura una interfaz de origen de datos correctamente configurada en aplicaciones cliente sin riesgo de corrupción ni fugas de datos.
Sincronizar datos automáticamente
Las aplicaciones Atlas Device Sync almacenan datos y sincronizan sus cambios en un clúster vinculado, denominado clúster sincronizado. El protocolo de sincronización garantiza la coherencia de los datos entre todos los clientes de sincronización y el clúster sincronizado.
Para obtener más información sobre Atlas Device Sync y cómo interactúa con las fuentes de datos de su aplicación, consulte Atlas Device Sync.
Nota
Requisitos de la fuente de datos para la sincronización del dispositivo
Para habilitar la sincronización de dispositivos, su aplicación de Servicios de aplicaciones debe tener al menos una fuente de datos vinculada que cumpla con los siguientes requisitos:
Un clúster MongoDB Atlas no fragmentado que ejecuta MongoDB 5.0 o posterior.
El clúster no puede ser una instancia sin servidor ni una instancia de base de datos federada. Consulte Limitaciones de las fuentes de datos.
Reaccionar a los datos cambiantes
Puedes crear disparadores de base de datos que ejecuten funciones automáticamente al cambiar los datos. Los disparadores utilizan flujos de cambio de MongoDB para observar la fuente de datos y ejecutar una función cuando un evento de cambio coincide con la configuración del disparador. Una función de disparador puede ejecutar código arbitrario y acceder a un evento de cambio para obtener información detallada sobre el cambio que lo provocó.
Para obtener más información sobre cómo funcionan los activadores y cómo definir los suyos propios,consulte Activadores.
Importante
Los activadores solo están disponibles para fuentes de datos compatibles con flujos de cambios. No se pueden definir activadores en instancias de bases de datos federadas ni en instancias de Atlas sin servidor.
Vincular una fuente de datos
Una fuente de datos configurada en su aplicación está vinculada a la instancia subyacente en Atlas. Puede enlazar múltiples instancias a su aplicación e incluso crear varias fuentes de datos que enlacen con la misma instancia subyacente.
Puede configurar una nueva fuente de datos vinculada en la interfaz de usuario de App Services o definiendo y enviando un archivo de configuración con la CLI de App Services o la implementación de GitHub:
Vincular una nueva fuente de datos
Haga clic en Link a Data Source y proporcione la siguiente información de configuración en la pantalla Data Source Configuration:
Campo | Descripción | |
|---|---|---|
Data Source | Un clúster MongoDB Atlas o una instancia de base de datos federada asociada al mismo proyecto que su aplicación. | |
App Services Service Name | Un nombre para el servicio de App Services que se conecta a la fuente de datos. Usarás este nombre al hacer referencia a la fuente de datos en otras partes de tu aplicación, como al instanciar un cliente de servicio de MongoDB. EjemploConsidere una fuente de datos de clúster de MongoDB con el App Services
Service Name | |
MongoDB Connection String config.wireProtocolEnabled | Obligatorio para clústeres Atlas. No habilitado para instancias de bases de datos federadas. Un valor booleano que indica si App Services debe permitir que los clientes se conecten a este clúster con una cadena de conexión mediante el protocolo de conexión. | |
Read Preference | Obligatorio para clústeres Atlas. No disponible para instancias de bases de datos federadas. Especifica la preferencia de lectura del clúster. La preferencia de lectura predeterminada (principal) debería ser suficiente para la mayoría de los casos de uso. |
Obtenga la última versión de su aplicación
Para vincular un clúster de MongoDB Atlas o una instancia de base de datos federada con la CLI de App Services, necesita una copia local de los archivos de configuración de su aplicación.
Para extraer una copia local de la última versión de su aplicación, ejecute lo siguiente:
appservices pull --remote="<Your App ID>"
Tip
También puedes descargar una copia de los archivos de configuración de tu aplicación desde la pantalla Deploy > Export App en la Interfaz de usuario Realm.
Agregar un archivo de configuración de fuente de datos
Agregue un archivo llamado config.json al subdirectorio de la fuente de datos. Este archivo puede configurar un clúster de MongoDB Atlas o una instancia de base de datos federada.
El archivo de configuración debe tener la siguiente forma general:
{ "name": "<Service Name>", "type": "mongodb-atlas", "config": { "clusterName": "<Atlas Cluster Name>", "readPreference": "<Read Preference>", "wireProtocolEnabled": <Boolean>, "sync": <Sync Configuration> } }
Nota
Para obtener información detallada sobre el contenido de un archivo de configuración de clúster, consulte Configuración de clúster MongoDB vinculado.
{ "name": "<Service Name>", "type": "datalake", "config": { "dataLakeName": "<Federated database instance name>" } }
Nota
Para obtener más información, consulte Configuración de instancia de base de datos federada.
Implementar la configuración de la fuente de datos
Una vez que haya definido y guardado un archivo config.json para la fuente de datos, puede enviar la configuración a su aplicación remota. App Services inicia inmediatamente el proceso de vinculación con la fuente de datos, que puede tardar hasta cinco minutos.
appservices push --remote="<Your App ID>"
Limitaciones de la fuente de datos
Una fuente de datos vinculada puede representar uno de varios tipos de instancias de MongoDB Atlas. Dependiendo del tipo de instancia subyacente, no se admiten todas las funciones.
Una vez vinculada una fuente de datos, no se puede cambiar el tipo de instancia subyacente. En su lugar, se puede vincular una nueva fuente de datos con otro tipo de instancia.
Atlas Data Federation
Puedes vincular una instancia de base de datos federada a tu aplicación como fuente de datos de MongoDB. Sin embargo, hay algunas advertencias que debes tener en cuenta al trabajar con Atlas Data Federation:
Las fuentes de datos federadas no admiten operaciones de escritura.
Solo se puede acceder a una fuente de datos federada desde una función del sistema.
No es posible conectarse a una fuente de datos federada a través del protocolo de cable.
No se pueden definir roles ni permisos para una fuente de datos federada.
No se puede establecer una preferencia de lectura para una fuente de datos federada.
No se puede crear un activador de base de datos en una fuente de datos federada.
No puede utilizar una fuente de datos federada como el clúster de Device Sync de su aplicación.
Instancias sin servidor
Puedes vincular una instancia sin servidor a tu aplicación como fuente de datos de MongoDB. Sin embargo, actualmente las instancias sin servidor no admiten flujos de cambios, por lo que las siguientes funciones están limitadas:
No es posible crear un activador de base de datos en una instancia sin servidor.
No puedes usar una instancia sin servidor como clúster de sincronización de dispositivos de tu aplicación.
No es posible supervisar colecciones en busca de cambios en las fuentes de datos que son instancias de MongoDB Atlas sin servidor.