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
/ /
Connect to MongoDB Data Sources

Uso de la base de datos interna

Atlas App Services utiliza el clúster de MongoDB Atlas vinculado para gestionar algunas operaciones internas. Por lo general, no es necesario conocer estas operaciones para usar App Services.

App Services crea automáticamente un Usuario de MongoDB para cada aplicación vinculada a un clúster. Estos usuarios son solo para uso interno y no se pueden editar ni eliminar manualmente. Si elimina una aplicación, también se eliminará el usuario asociado.

Los usuarios generados por App Services tienen nombres con el formato: mongodb-realm-<your app id>

App Services se conecta a clústeres estándar de MongoDB Atlas, lo que significa que es posible conectarse directamente a un clúster vinculado utilizando otra herramienta, como la mongosh shell o MongoDB Compass. No existen consideraciones especiales al leer datos de un clúster vinculado con otra herramienta.

Mientras ejecuta operaciones de actualización, aplicación Services añade temporalmente un campo reservado, _id__baas_transaction, a los documentos. Una vez que un documento se actualiza correctamente, aplicación Services elimina este campo. Si deseas usar otra herramienta para modificar los datos de una colección, asegúrate de $unset este campo antes de realizar cambios.

Por ejemplo, si está utilizando el shell mongosh para actualizar documentos en la colección de productos, su comando podría parecerse al siguiente código:

db.products.update(
{ sku: "unknown" },
{ $unset: { _id__baas_transaction: "" } }
)

Si un documento de una colección sincronizada no se ajusta al esquema de la colección, no se podrá sincronizar con las aplicaciones cliente. Si 100 hay,000 o más documentos no sincronizables, App Services deja de sincronizar con la aplicación.

App Services almacena información sobre documentos que no se pueden sincronizar en la colección __realm_sync.unsynced_documents.

Importante

You can read from the __realm_sync.unsynced_documents collection, but you should not modify it in any way.

If Device Sync is paused due to hitting the 100,000 unsyncable document limit, you have two options:

  • terminar y volver a sincronizar.

  • Póngase en contacto con el soporte y solicite un aumento temporal en el límite de documentos no sincronizables.

Una causa común de documentos no sincronizables son los datos agregados o modificados fuera del contexto de su aplicación.

Consideremos el siguiente escenario:

  1. Una aplicación tiene una colección pets con el siguiente esquema:

    {
    "title": "Pet",
    "required": ["_id", "type", "name", "age"],
    "properties": {
    "_id": { "bsonType: "objectId" },
    "type": { "bsonType: "string" },
    "name": { "bsonType: "string" },
    "age": { "bsonType: "int" }
    }
    };
  2. Someone adds a document directly to the pets collection using a MongoDB driver, MongoDB compass, or an Atlas Function running in "system" mode. The document's age field contains a string, not a number, which does not match your app's schema. MongoDB does not natively enforce your app's schema, so it allows the insert without a warning or error.

    {
    "_id": "5ae782e48f25b9dc5c51c4a5",
    "type": "dog",
    "name": "Fido",
    "age": "7"
    }
  3. Una vez insertado, el documento falla la validación de esquema en tu aplicación y no puede sincronizarse. La aplicación almacena el fallo en la colección unsynced_documents:

    {
    "_id": "6183021879247167daacd8dc",
    "appId": "6183021373247568dcdcd3ed",
    "documentId": "5ae782e48f25b9dc5c51c4a5",
    "ns": {
    "db": "myDatabase",
    "coll": "pets"
    },
    "reason": "invalid schema"
    }
Resumen
Si sus datos son utilizados por clientes de sincronización, pero también pueden crearse o modificarse fuera de Atlas Device Sync, debe asegurarse de que dichas creaciones y modificaciones coincidan con el esquema de objetos definido en la colección. En el caso de los documentos que han fallado, puede reemplazarlos, actualizarlos o eliminarlos y volver a agregarlos.

Volver

Preimágenes del documento