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

Criar um Modelo de Dados

Nesta página

  • Visão geral
  • Pré-requisitos
  • Criar um esquema do App Services a partir de um Realm Object Model
  • Criar um esquema de objeto do Realm a partir de um esquema do App Services
  • Leitura adicional

O modelo de dados do Device Sync consiste em dois esquemas consistentes: o esquema de objetos de Realm usado no Atlas Device SDK e o esquema do App Services.

Você pode criar o modelo de dados para seu aplicativo por meio do esquema de objetos de Realm primeiro ou por meio do esquema do App Services primeiro:

  • Crie um esquema do App Services a partir de um esquema de objetos de Realm: se você estiver desenvolvendo o mobile-first e ainda não tiver dados no cluster do Atlas, poderá traduzir seu esquema de objetos de Realm em um esquema do App Services.

  • Crie um esquema de objetos de Realm a partir de um esquema do App Services: se você já tiver dados em seu cluster do MongoDB Atlas, o MongoDB gera um esquema por amostragem de seus dados. O Atlas App Services pode converter esse esquema em um esquema de objetos de Realm para usar em seu aplicativo móvel com o Atlas Device SDK.

Independentemente da abordagem adotada, quando você configura o cluster do Atlas e o aplicativo móvel para usar o respectivo modelo de dados, as alterações no modelo de dados entre o servidor e o cliente são atualizadas automaticamente.

Sua aplicação deve ter pelo menos uma fonte de dados vinculada para criar um esquema.

No entanto, não pode ser uma instância sem servidor ou instância do banco de dados federado.

Você pode alterar ou definir um esquema de objetos de Realm por meio do SDK do cliente móvel. As alterações no esquema de objeto de Realm só são permitidas quando o Modo de Desenvolvimento está habilitado. O App Services refletirá quaisquer alterações em seu esquema de objetos de Realm em seu esquema do App Services.

Consulte a documentação específica do Atlas Device SDK para criar esquemas de objetos de Realm.

1

O modo de desenvolvimento está definido na IU do App Services.

Para habilitar o modo de desenvolvimento, clique no controle deslizante à direita de Development Mode.

A UI para habilitar o modo de desenvolvimento
clique para ampliar
2

À medida que você continuar desenvolvendo o aplicativo, precisará modificar o modelo de dados com ele para aplicar diferentes regras de validação de dados com base nessas alterações. Enquanto Development Mode estiver ativado, você poderá editar o Esquema de Objeto de Realm no código do cliente. A Validação de Dados ocorre quando Development Mode está desativado, portanto, os App Services não aceitam alterações no Esquema de Objeto de Realm enquanto Development Mode não estiver ativado.

Importante

Chave primária _id obrigatória

Para trabalhar com o Atlas Device Sync, seu modelo de dados deve ter um campo de chave primária chamado _id. _id pode ser do tipo string, int ou objectId.

Exemplo

Um grupo está desenvolvendo um aplicativo de mídia social. Quando o grupo desenvolveu seu aplicativo pela primeira vez, o aniversário de um usuário era um campo obrigatório do modelo de dados do usuário. No entanto, devido a preocupações de privacidade sobre a quantidade de dados do usuário armazenados, o gerenciamento cria um novo requisito para tornar o campo de aniversário do usuário um campo opcional. Os desenvolvedores de aplicativos ativam Development Mode na interface do usuário do App Services e, em seguida, editam o modelo de usuário no código do cliente.

const realmObjectModel = {
name: 'User',
properties: {
_id: 'objectId',
_partition: 'string',
name: 'string',
// developers set optional: true to adhere to the new requirement
birthday: {type: 'date', optional: true},
},
primaryKey: '_id'
};
Realm.open({schema: realmObjectModel, sync: {/*...*/}})
.then(realm => {
// ... use the realm instance to read and modify data
})
3

Enquanto o Development Mode estiver ativado, o App Services não valida as gravações em seu modelo de dados, permitindo que você atualize livremente seu Modelo de objetos de Realm. Quando você desativa o Development Mode, o MongoDB App Services atualiza automaticamente seu Esquema de App Services e começa a forçar a validação de dados para seu Atlas cluster com base nele.

Na tela Sync , desative Development Mode clicando no controle deslizante ao lado de Development Mode. A UI indica que o modo de desenvolvimento foi desativado.

A interface do usuário que mostra o Modo de Desenvolvimento está desativada
clique para ampliar

Observação

Para fazer atualizações futuras do modelo de dados a partir do código do cliente móvel, você pode seguir este procedimento novamente.

1

Para começar, certifique-se de ter um esquema de App Services definido. O App Services converterá esse esquema de App Services em um Esquema de objetos do Realm a ser configurado e utilizado em seu aplicativo móvel.

Observe os seguintes requisitos:

  • O esquema do App Services deve ter um campo de chave primária denominado _id. _id pode ser do tipo string, int ou objectId.

  • Os nomes de tipo do seu objeto de esquema não podem exceder 57 caracteres UTF-8.

2

O esquema de objetos de Realm define e valida seus dados em seu aplicativo de cliente móvel. Para visualizar seu esquema de objetos de Realm, navegue até a página Atlas Device SDKs e clique na aba Realm Object Models. Nesta página, você pode visualizar seu esquema do App Services como um esquema de objetos de Realm gerado no idioma de sua escolha.

Os modelos de objeto do Realm gerados e os avisos associados na interface do usuário
clique para ampliar
3

Você pode usar o Esquema de objetos de Realm gerado em seu aplicativo cliente. Para começar a forçar a validação de dados com seu modelo de dados, você pode abrir um Realm com o Esquema de objetos de Realm. Isso evitará que dados impróprios entrem em seu banco de dados a partir do seu cliente móvel.

Clique em Copy no lado direito do Esquema de objetos de Realm para o Object Modelque você deseja integrar ao código do aplicativo móvel. Isso copiará o código do Esquema de objetos de Realm para o SDK de sua escolha na área de transferência.

Abra o código do aplicativo móvel no IDE e cole o código do Esquema de objetos de Realm.

const UserSchema = { // your copied and pasted Realm Object Schema
name: 'User',
properties: {
_id: 'objectId',
_partition: 'string',
name: 'string',
birthday: 'date'
},
primaryKey: '_id'
};
// Initialize a realm with your Realm Object Schema
Realm.open({schema: UserSchema, sync: { /* ... */ }})
.then(realm => {
// ... use the realm instance to read and modify data
})

Consulte a documentação específica do Atlas Device SDK para usar o esquema de objetos de Realm gerado.

Voltar

Visão geral do modelo de dados de sincronização