Menu Docs
Página inicial do Docs
/ /
Serviços Atlas App
/

Uso interno do banco de dados

O Atlas App Services usa seu MongoDB Atlas cluster para managed algumas operações internas. Em geral, você não precisa saber sobre essas operações para usar o App Services.

O App Services cria automaticamente um usuário do MongoDB para cada aplicativo vinculado a um cluster. Esses usuários são apenas para uso interno e não podem ser editados ou excluídos manualmente. Se você excluir uma aplicação, o usuário associado também será excluído.

Os usuários gerados pelo App Services têm nomes no formato: mongodb-realm-<your app id>

Atlas App Services se conecta a clusters padrão do MongoDB Atlas , o que significa que você pode se conectar diretamente a um cluster vinculado usando outra ferramenta, como o mongosh shell ou o MongoDB Compass. Não há considerações especiais ao ler dados de um cluster vinculado com outra ferramenta.

Ao executar operações de atualização, os App Services adicionam temporariamente um campo reservado, _id__baas_transaction, aos documentos. Depois que um documento é atualizado com êxito, o App Services remove esse campo. Se você quiser usar outra ferramenta para modificar dados em uma coleção, certifique-se de $unset este campo antes de fazer alterações.

Por exemplo, se você estiver usando o shell mongosh para atualizar documentos na coleção de produtos, seu comando poderá se assemelhar ao código a seguir:

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

Se um documento em uma coleção sincronizada não estiver em conformidade com o esquema da coleção, ele não poderá ser sincronizado com aplicativos cliente . Se houver 100,000 ou mais documentos não sincronizáveis, o App Services interromperá a sincronização com o aplicativo.

O App Services armazena informações sobre documento não sincronizáveis na collection __realm_sync.unsynced_documents .

Importante

Você pode ler a partir da coleção __realm_sync.unsynced_documents , mas não deve modificá-la de forma alguma.

Se o Device Sync estiver pausado devido a atingir o limite de documento não sincronizáveis 100,000 , você terá duas opções:

  • encerrar e reativar a sincronização.

  • Entre em contato com o suporte e solicite um aumento temporário no limite de documentos não sincronizáveis.

Uma causa comum para documentos não sincronizáveis são os dados adicionados ou modificados fora do contexto do seu aplicativo.

Considere o seguinte cenário:

  1. Um aplicativo tem uma collection pets com o seguinte esquema:

    {
    "title": "Pet",
    "required": ["_id", "type", "name", "age"],
    "properties": {
    "_id": { "bsonType: "objectId" },
    "type": { "bsonType: "string" },
    "name": { "bsonType: "string" },
    "age": { "bsonType: "int" }
    }
    };
  2. Uma pessoa adiciona um documento diretamente à collection pets usando um driver do MongoDB, um MongoDB Compass ou uma Função de Realm em execução no modo "sistema". O campo age do documento contém uma string, não um número, que não corresponde ao esquema do seu aplicativo. O MongoDB não impõe nativamente o esquema do seu aplicativo, portanto, permite a inserção sem aviso ou erro.

    {
    "_id": "5ae782e48f25b9dc5c51c4a5",
    "type": "dog",
    "name": "Fido",
    "age": "7"
    }
  3. Depois de inserido, o documento falha na validação de esquema em seu aplicativo e não pode ser sincronizado. O aplicativo armazena a falha na coleção unsynced_documents :

    {
    "_id": "6183021879247167daacd8dc",
    "appId": "6183021373247568dcdcd3ed",
    "documentId": "5ae782e48f25b9dc5c51c4a5",
    "ns": {
    "db": "myDatabase",
    "coll": "pets"
    },
    "reason": "invalid schema"
    }
Resumo
Se seus dados forem usados por clientes do Realm Mobile Sync, mas também puderem ser criados ou modificados fora do Atlas Device Sync, você deverá garantir que essas criações e modificações correspondam ao esquema de objetos definido na collection. Para documentos que falharam, você pode substituir, atualizar ou excluir e adicionar novamente cada documento.

Voltar

Pré-imagens de documentos