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á.
util.transform
contém métodos auxiliares que facilitam a execução de operações complexas em fontes de dados.
util.transform.toDynamoDBFilterExpression(filterObject: DynamoDBFilterObject) : string
-
Converte uma string de entrada em uma expressão de filtro para o uso com o DynamoDB. Recomendamos o uso
toDynamoDBFilterExpression
com funções de módulo integradas. util.transform.toElasticsearchQueryDSL(object: OpenSearchQueryObject) : string
-
Converte a entrada fornecida em sua expressão DSL de OpenSearch consulta equivalente, retornando-a como uma string JSON.
Exemplo de entrada:
util.transform.toElasticsearchQueryDSL({ "upvotes":{ "ne":15, "range":[ 10, 20 ] }, "title":{ "eq":"hihihi", "wildcard":"h*i" } })
Exemplos de resultado:
{ "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" } } ] } } ] } }
nota
Presume-se que o operador padrão seja AND.
util.transform.toSubscriptionFilter(objFilter, ignoredFields?, rules?): SubscriptionFilter
-
Converte um objeto de entrada
Map
em um objeto de expressãoSubscriptionFilter
. O métodoutil.transform.toSubscriptionFilter
é usado como entrada para a extensãoextensions.setSubscriptionFilter()
. Para obter mais informações, consulte Extensões.nota
Os parâmetros e a declaração de retorno estão listados abaixo:
Parâmetros
-
objFilter
:SubscriptionFilterObject
Um objeto de entrada
Map
que é convertido no objeto de expressãoSubscriptionFilter
. -
ignoredFields
:SubscriptionFilterExcludeKeysType
(opcional)Um
List
dos nomes de campo no primeiro objeto que serão ignorados. -
rules
:SubscriptionFilterRuleObject
(opcional)Um objeto
Map
de entrada com regras rígidas que é incluído quando você está criando o 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.
Resposta
Retorna um
SubscriptionFilter
. -
util.transform.toSubscriptionFilter(Map, List)
-
Converte um objeto de entrada
Map
em um objeto de expressãoSubscriptionFilter
. O métodoutil.transform.toSubscriptionFilter
é usado como entrada para a extensãoextensions.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)
-
Converte um objeto de entrada
Map
em um objeto de expressãoSubscriptionFilter
. O métodoutil.transform.toSubscriptionFilter
é usado como entrada para a extensãoextensions.setSubscriptionFilter()
. Para obter mais informações, consulte Extensões. util.transform.toDynamoDBConditionExpression(conditionObject)
-
Cria uma expressão de condição do DynamoDB.
Argumentos do filtro de assinatura
A tabela a seguir explica como os argumentos dos seguintes utilitários são definidos:
-
Util.transform.toSubscriptionFilter(objFilter, ignoredFields?, rules?): SubscriptionFilter
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 Map
também pode ter "and" e "or" como chaves, o que implica que todas as entradas dentro dessas devem ser unidas usando a lógica AND ou 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
}
]
}
]
}