Arquivos de configuração do conjunto de dados do MongoDB
Nesta página
app/ └── data_sources/ └── <service name>/ ├── config.json └── <database>/ └── <collection>/ ├── schema.json ├── relationships.json └── rules.json
Configuração do serviço
Clusters do MongoDB
{ "name": "<Service Name>", "type": "mongodb-atlas", "config": { "clusterName": "<Atlas Cluster Name>", "readPreference": "<Read Preference>", "wireProtocolEnabled": <Boolean> } }
Campo | Descrição | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
name string | Obrigatório. Padrão: O nome do serviço usado para se referir ao cluster dentro deste Atlas App Services App. O nome pode ter no máximo 64 caracteres e deve conter apenas letras, números, sublinhados e hífens ASCII. | ||||||||||||
type string | Obrigatório. Para clusters do MongoDB Atlas, esse valor é sempre "mongodb-atlas" . | ||||||||||||
config.clusterName string | Obrigatório. O nome do cluster no Atlas. | ||||||||||||
config.readPreference string | O modo de preferência de leitura para query enviadas por meio do serviço.
| ||||||||||||
config.wireProtocolEnabled Boolean | Se true , os clientes podem se conectar ao aplicativo pelo protocolo de conexão MongoDB. |
Instâncias do banco de dados federado
{ "name": "<Service Name>", "type": "datalake", "config": { "dataLakeName": "<Federated database instance name>" } }
Campo | Descrição |
---|---|
name string | Obrigatório. Padrão: O nome do serviço costumava se referir à instância do banco de dados federado nesse aplicativo do App Services. O nome pode ter no máximo 64 caracteres e deve conter apenas letras, números, sublinhados e hífens ASCII. |
type string | Obrigatório. Para uma instância do banco de dados federado, esse valor é sempre "datalake" . |
config.dataLakeName string | Obrigatório. O nome da instância do Banco de Dados Federado no Atlas. |
reconhecimento de data center e collection
Esquema de collection
Se você deseja impor um esquema para uma collection, defina um arquivo de configuração schema.json
que contém um JSON schema para os documento. O esquema de nível raiz deve ser um esquema de objeto, que possui o seguinte formato:
{ "title": "<Object Type Name>", "bsonType": "object", "properties": { "<Property Name>": { <Schema> }, ... } }
Relacionamentos
{ "<Source Field Name>": { "ref": "#/relationship/<Data Source Name>/<Database Name>/<Collection Name>", "source_key": "<Source Field Name>", "foreign_key": "<Foreign Field Name>", "is_list": <Boolean> }, ... }
Campo | Descrição | |
---|---|---|
ref string | Uma string de JSON schema
| |
source_key string | O nome do campo no esquema desta collection que especifica quais documento da collection estrangeira incluir no relacionamento. Um documento externo será incluído se source_key contiver o valor de seu campo foreign_key . | |
foreign_key string | O nome do campo no esquema da collection externa que contém o valor referenciado por source_key . | |
is_list Boolean | Se Se |
Exemplo
Um aplicativo de e-commerce define um relacionamento entre duas collections: cada documento em store.orders
faz referência a um ou mais documentos na collection store.items
ao incluir valores de item _id
na array items
do pedido. Ambas as coleções estão no mesmo cluster vinculado (mongodb-atlas
) e banco de dados (store
).
O relacionamento é definido para a coleção orders
:
{ "items": { "ref": "#/relationship/mongodb-atlas/store/items", "source_key": "items", "foreign_key": "_id", "is_list": true } }
Regras padrão
Você pode definir regras padrão que se aplicam a todas as collections em uma fonte de dados que não tenham regras mais específicas em nível de collection definidas.
Você define regras padrão no arquivo de configuração default_rule.json
da fonte de dados em data_sources/<data-source-name>/default_rule.json
.
{ "roles": [<Role>], "filters": [<Filter>] }
Regras de collection
Se a fonte de dados não for uma fonte de dados federada, você poderá definir as regras em nível de collection no arquivo de configuração rules.json
de uma collection.
{ "database": "<Database Name>", "collection": "<Collection Name>", "roles": [<Role>], "filters": [<Filter>] }
Configurações de regras
Funções
{ "name": "<Role Name>", "apply_when": { Expression }, "document_filters": { "read": { Expression }, "write": { Expression } }, "read": { Expression }, "write": { Expression }, "insert": { Expression }, "delete": { Expression }, "search": <Boolean>, "fields": { "<Field Name>": { "read": { Expression }, "write": { Expression }, "fields": { Embedded Fields } }, ... }, "additional_fields": { "read": { Expression }, "write": { Expression } } }
Campo | Descrição | ||||||||
---|---|---|---|---|---|---|---|---|---|
name string | O nome da role. Os nomes de roles identificam e distinguem entre roles na mesma collection. Limitado a 100 caracteres ou menos. | ||||||||
apply_when object | Uma expressão avaliada como verdadeira quando essa role se aplica a um usuário. Quando o Device Sync (modo flexível) não está ativado, o App Services atribui uma função por documento. Quando o Realm Mobile Sync (modo flexível) está habilitado, o App Services atribui funções por collection e por sessão, ou seja, para cada collection sincronizada quando um cliente abre uma conexão de sincronização. Para atribuir uma função, o App Services avalia o Se o Device Sync (modo flexível) estiver ativado, as funções atribuídas deverão ser compatíveis com a sincronização. Se a role não for compatível com a sincronização, mas seu | ||||||||
document_filters Document Default: undefined | Um documento com expressões de leitura e gravação que determinam se as outras permissões da role podem ser avaliadas. Se o Device Sync estiver habilitadoo, Se o Realm Mobile Sync não estiver habilitado,
| ||||||||
document_filters.read object? Default: undefined | Uma expressão que especifica se Para manter a compatibilidade do Sync, a expressão deve ser definida e só pode fazer referência a campos de query . | ||||||||
document_filters.write object? Default: undefined | Uma expressão que especifica se Para manter a compatibilidade do Sync, a expressão deve ser definida e só pode fazer referência a campos de query . | ||||||||
read object? Default: undefined | Uma expressão que avalia para verdadeira se a função tiver permissão para ler todos os campos no documento. Para manter a compatibilidade de sincronização, a expressão deve ser um literal booleano ( As permissões de leitura no nível do documento têm prioridade sobre quaisquer permissões no nível do campo. Se uma função tiver permissões Para definir um fallback padrão junto com as regras em nível de campo, deixe | ||||||||
write object? Default: undefined | Uma expressão avaliada como verdadeira se a role tiver permissão para adicionar, modificar ou remover todos os campos no documento. Para manter a compatibilidade de sincronização, a expressão deve ser um literal booleano ( As permissões de gravação no nível do documento têm prioridade sobre quaisquer permissões no nível do campo. Se uma função tiver permissões Para definir um fallback padrão junto com as regras em nível de campo, deixe Você pode utilizar expansões como ImportantePermissão de leitura implícitaSempre que uma função tem permissão | ||||||||
insert object? Default: true | Uma expressão que avalia para O App Services só avalia essa expressão para operações de inserção e somente após determinar que a role tem permissão | ||||||||
delete object? Default: true | Uma expressão que é avaliada como verdadeira se a role tiver permissão para excluir um documento da collection. O App Services só avalia essa expressão para operações de exclusão e somente após determinar que a role tem permissão | ||||||||
search Boolean Default: true | Uma expressão que é avaliada como verdadeira se a função tiver permissão para fazer o Atlas Search na collection usando o Atlas Search. ImportanteO App Services | ||||||||
fields Document Default: {} | Um documento em que cada chave corresponde a um nome de campo e cada valor define as permissões Para manter a compatibilidade de sincronização, as expressões
ObservaçãoPrioridade de permissãoAs permissões | ||||||||
fields.<Field Name>.read object? Default: false | Uma expressão avaliada como verdadeira se a role tiver permissão para ler o campo. Para manter a compatibilidade de sincronização, a expressão deve ser um literal booleano ( | ||||||||
fields.<Field Name>.write object? Default: false | Uma expressão avaliada como verdadeira se a role tiver permissão para adicionar, modificar ou remover o campo. Para manter a compatibilidade de sincronização, a expressão deve ser um literal booleano ( | ||||||||
fields.<Field Name>.fields Document Default: {} | Um documento Consulte o padrão de função Permissões de nível de campo para documentos incorporados para obter mais informações. | ||||||||
additional_fields Document Default: {} | Um documento que define as permissões Para manter a compatibilidade de sincronização, as expressões
| ||||||||
additional_fields.read object? Default: false | Uma expressão avaliada como verdadeira se a role tiver permissão para ler qualquer campo que não tenha uma definição de permissão de nível de campo em Para manter a compatibilidade de sincronização, a expressão deve ser booleana ( | ||||||||
additional_fields.write object? Default: false | Uma expressão avaliada como verdadeira se a role tiver permissão para adicionar, modificar ou remover qualquer campo que não tenha uma definição de permissão de nível de campo em Para manter a compatibilidade de sincronização, a expressão deve ser booleana ( |
Filtros
{ "name": "<Filter Name>", "apply_when": { Expression }, "query": { MongoDB Query }, "projection": { MongoDB Projection } }
Campo | Descrição | |
---|---|---|
name string | Obrigatório. O nome do filtro. Os nomes de filtros são úteis para identificar e distinguir entre filtros. Limitado a 100 caracteres ou menos. | |
apply_when object | Uma expressão que determina quando esse filtro se aplica a uma operação MongoDB de entrada. ImportanteO Atlas App Services avalia e aplica filtros antes de ler qualquer tipo de documento, portanto, você não pode usar expansões de documentos do MongoDB em uma expressão Apply When de um filtro. No entanto, você pode usar outras expansões, como | |
query object Default: {} | Uma query doMongoDB que o Atlas App Services mescla à query existente de uma operação filtrada. ExemploUm filtro retém documentos que tenham
| |
projection object Default: {} | Uma projeção doMongoDB que o Atlas App Services mescla na projeção existente de uma operação filtrada. ImportanteConflitos de projeçãoAs projeção do MongoDB podem ser inclusivas ou exclusivas, ou seja, podem retornar apenas campo especificados ou reter campo que não são especificados. Se vários filtros se aplicarem a uma query, todos os filtros deverão especificar o mesmo tipo de projeção, ou a query falhará. ExemploUm filtro retém o campo
|