As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
nota
Agora, oferecemos suporte principalmente ao tempo de execução APPSYNC _JS e sua documentação. Considere usar o tempo de execução APPSYNC _JS e seus guias aqui.
$util.transform
contém métodos auxiliares que facilitam a execução de operações complexas em fontes de dados, como operações de filtragem do Amazon DynamoDB.
Auxiliares de transformação
$util.transform.toDynamoDBFilterExpression(Map) : Map
-
Converte uma string de entrada em uma expressão de filtragem para o uso com o DynamoDB.
Input: $util.transform.toDynamoDBFilterExpression({ "title":{ "contains":"Hello World" } }) Output: { "expression" : "contains(#title, :title_contains)" "expressionNames" : { "#title" : "title", }, "expressionValues" : { ":title_contains" : { "S" : "Hello World" } }, }
$util.transform.toElasticsearchQueryDSL(Map) : Map
-
Converte a entrada fornecida em sua DSL expressão OpenSearch Query equivalente, retornando-a como uma JSON string.
Input: $util.transform.toElasticsearchQueryDSL({ "upvotes":{ "ne":15, "range":[ 10, 20 ] }, "title":{ "eq":"hihihi", "wildcard":"h*i" } }) Output: { "bool":{ "must":[ { "bool":{ "must":[ { "bool":{ "must_not":{ "term":{ "upvotes":15 } } } }, { "range":{ "upvotes":{ "gte":10, "lte":20 } } } ] } }, { "bool":{ "must":[ { "term":{ "title":"hihihi" } }, { "wildcard":{ "title":"h*i" } } ] } } ] } }
Presume-se que o operador padrão sejaAND.
Filtros de assinatura de auxiliares de transformação
$util.transform.toSubscriptionFilter(Map) : Map
-
Converte um objeto de entrada
Map
em um objeto de expressãoSubscriptionFilter
. O método$util.transform.toSubscriptionFilter
é usado como entrada para a extensão$extensions.setSubscriptionFilter()
. Para obter mais informações, consulte Extensões. $util.transform.toSubscriptionFilter(Map, List) : Map
-
Converte um objeto de entrada
Map
em um objeto de expressãoSubscriptionFilter
. O método$util.transform.toSubscriptionFilter
é usado como entrada para a extensão$extensions.setSubscriptionFilter()
. Para obter mais informações, consulte Extensões.O primeiro argumento é o objeto de entrada
Map
que é convertido no objeto de expressãoSubscriptionFilter
. O segundo argumento é umaList
de nomes de campos que são ignorados no primeiro objeto de entradaMap
durante a criação da estrutura do objeto de expressãoSubscriptionFilter
. $util.transform.toSubscriptionFilter(Map, List, Map) : Map
-
Converte um objeto de entrada
Map
em um objeto de expressãoSubscriptionFilter
. O método$util.transform.toSubscriptionFilter
é usado como entrada para a extensão$extensions.setSubscriptionFilter()
. Para obter mais informações, consulte Extensões.O primeiro argumento é o objeto de entrada
Map
que é convertido no objeto de expressãoSubscriptionFilter
, o segundo argumento é umaList
dos nomes de campos que serão ignorados no primeiro objeto de entradaMap
e o terceiro argumento é um objeto de entradaMap
de regras estritas que são incluídas durante a criação da estrutura do objeto de expressãoSubscriptionFilter
. Essas regras estritas são incluídas no objeto de expressãoSubscriptionFilter
de forma que pelo menos uma das regras seja satisfeita para passar pelo filtro de assinatura.
Argumentos do filtro de assinatura
A tabela a seguir explica como os argumentos dos seguintes utilitários são definidos:
-
$util.transform.toSubscriptionFilter(Map) : Map
-
$util.transform.toSubscriptionFilter(Map, List) : Map
-
$util.transform.toSubscriptionFilter(Map, List, Map) : Map
O argumento 1 é um objeto Map
com os seguintes valores-chave:
-
nomes de campos
-
"and"
-
"or"
Para nomes de campos como chaves, as condições nas entradas desses campos estão no formato "operator" : "value"
.
O exemplo a seguir mostra como entradas podem ser adicionadas ao Map
:
"field_name" : {
"operator1" : value
}
## We can have multiple conditions for the same field_name:
"field_name" : {
"operator1" : value
"operator2" : value
.
.
.
}
Quando um campo contém duas ou mais condições, todas essas condições são consideradas para usar a operação OR.
A entrada também Map
pode ter “e” e “ou” como chaves, o que implica que todas as entradas dentro delas devem ser unidas usando a lógica AND or OR, dependendo da chave. Os valores-chave "and" e "or" esperam uma série de condições.
"and" : [
{
"field_name1" : {
"operator1" : value
}
},
{
"field_name2" : {
"operator1" : value
}
},
.
.
].
Observe que você pode aninhar "and" e "or". Ou seja, você pode ter aninhado "and"/"or" em outro bloco "and"/"or". No entanto, isso não funciona em campos simples.
"and" : [
{
"field_name1" : {
"operator" : value
}
},
{
"or" : [
{
"field_name2" : {
"operator" : value
}
},
{
"field_name3" : {
"operator" : value
}
}
].
O exemplo a seguir mostra uma entrada do argumento 1 usando $util.transform.toSubscriptionFilter(Map) :
Map
.
Entrada(s)
Argumento 1: mapa:
{
"percentageUp": {
"lte": 50,
"gte": 20
},
"and": [
{
"title": {
"ne": "Book1"
}
},
{
"downvotes": {
"gt": 2000
}
}
],
"or": [
{
"author": {
"eq": "Admin"
}
},
{
"isPublished": {
"eq": false
}
}
]
}
Saída
O resultado é um objeto Map
:
{
"filterGroup": [
{
"filters": [
{
"fieldName": "percentageUp",
"operator": "lte",
"value": 50
},
{
"fieldName": "title",
"operator": "ne",
"value": "Book1"
},
{
"fieldName": "downvotes",
"operator": "gt",
"value": 2000
},
{
"fieldName": "author",
"operator": "eq",
"value": "Admin"
}
]
},
{
"filters": [
{
"fieldName": "percentageUp",
"operator": "lte",
"value": 50
},
{
"fieldName": "title",
"operator": "ne",
"value": "Book1"
},
{
"fieldName": "downvotes",
"operator": "gt",
"value": 2000
},
{
"fieldName": "isPublished",
"operator": "eq",
"value": false
}
]
},
{
"filters": [
{
"fieldName": "percentageUp",
"operator": "gte",
"value": 20
},
{
"fieldName": "title",
"operator": "ne",
"value": "Book1"
},
{
"fieldName": "downvotes",
"operator": "gt",
"value": 2000
},
{
"fieldName": "author",
"operator": "eq",
"value": "Admin"
}
]
},
{
"filters": [
{
"fieldName": "percentageUp",
"operator": "gte",
"value": 20
},
{
"fieldName": "title",
"operator": "ne",
"value": "Book1"
},
{
"fieldName": "downvotes",
"operator": "gt",
"value": 2000
},
{
"fieldName": "isPublished",
"operator": "eq",
"value": false
}
]
}
]
}