Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Note
Nous prenons désormais principalement en charge le runtime APPSYNC_JS et sa documentation. Pensez à utiliser le runtime APPSYNC_JS et ses guides ici.
$util.transform
contient des méthodes d'assistance qui facilitent l'exécution d'opérations complexes sur des sources de données, telles que les opérations de filtrage Amazon DynamoDB.
Aides à la transformation
$util.transform.toDynamoDBFilterExpression(Map) : Map
-
Convertit une chaîne d'entrée en une expression de filtre à utiliser avec 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
-
Convertit l'entrée donnée en son expression OpenSearch Query DSL équivalente, en la renvoyant sous forme de chaîne JSON.
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" } } ] } } ] } }
L'opérateur par défaut est supposé être AND.
Filtres d'abonnement pour les aides à la transformation
$util.transform.toSubscriptionFilter(Map) : Map
-
Convertit un objet
Map
d'entrée en objet d'SubscriptionFilter
expression. La$util.transform.toSubscriptionFilter
méthode est utilisée comme entrée dans l'$extensions.setSubscriptionFilter()
extension. Pour plus d'informations, consultez la section Extensions. $util.transform.toSubscriptionFilter(Map, List) : Map
-
Convertit un objet
Map
d'entrée en objet d'SubscriptionFilter
expression. La$util.transform.toSubscriptionFilter
méthode est utilisée comme entrée dans l'$extensions.setSubscriptionFilter()
extension. Pour plus d'informations, consultez la section Extensions.Le premier argument est l'objet
Map
d'entrée converti en objet d'SubscriptionFilter
expression. Le deuxième argument est un nomList
de champ qui est ignoré dans le premier objetMap
d'entrée lors de la construction de l'objetSubscriptionFilter
d'expression. $util.transform.toSubscriptionFilter(Map, List, Map) : Map
-
Convertit un objet
Map
d'entrée en objet d'SubscriptionFilter
expression. La$util.transform.toSubscriptionFilter
méthode est utilisée comme entrée dans l'$extensions.setSubscriptionFilter()
extension. Pour plus d'informations, consultez la section Extensions.Le premier argument est l'objet
Map
d'entrée converti en objet d'SubscriptionFilter
expression, le deuxième argument est un nomList
de champ qui sera ignoré dans le premier objetMap
d'entrée, et le troisième argument est un objetMap
d'entrée soumis à des règles strictes qui est inclus lors de la construction de l'objetSubscriptionFilter
d'expression. Ces règles strictes sont incluses dans l'objetSubscriptionFilter
d'expression de telle sorte qu'au moins l'une des règles soit satisfaite pour passer le filtre d'abonnement.
Arguments du filtre d'abonnement
Le tableau suivant explique comment les arguments des utilitaires suivants sont définis :
-
$util.transform.toSubscriptionFilter(Map) : Map
-
$util.transform.toSubscriptionFilter(Map, List) : Map
-
$util.transform.toSubscriptionFilter(Map, List, Map) : Map
L'argument 1 est un Map
objet dont les valeurs clés sont les suivantes :
-
noms de champs
-
« et »
-
« ou »
Pour les noms de champs sous forme de clés, les conditions relatives aux entrées de ces champs sont sous la forme de"operator" : "value"
.
L'exemple suivant montre comment des entrées peuvent être ajoutées au Map
:
"field_name" : {
"operator1" : value
}
## We can have multiple conditions for the same field_name:
"field_name" : {
"operator1" : value
"operator2" : value
.
.
.
}
Lorsqu'un champ comporte au moins deux conditions, toutes ces conditions sont considérées comme utilisant l'opération OR.
L'entrée Map
peut également comporter des touches « et » et « ou », ce qui implique que toutes les entrées qu'elles contiennent doivent être jointes en utilisant la logique AND ou OR en fonction de la clé. Les valeurs clés « et » et « ou » supposent un ensemble de conditions.
"and" : [
{
"field_name1" : {
"operator1" : value
}
},
{
"field_name2" : {
"operator1" : value
}
},
.
.
].
Notez que vous pouvez imbriquer « et » et « ou ». C'est-à-dire que vous pouvez avoir imbriqué « et » /"ou » dans un autre bloc « et » /"ou ». Toutefois, cela ne fonctionne pas pour les champs simples.
"and" : [
{
"field_name1" : {
"operator" : value
}
},
{
"or" : [
{
"field_name2" : {
"operator" : value
}
},
{
"field_name3" : {
"operator" : value
}
}
].
L'exemple suivant montre une entrée de l'argument 1 utilisant$util.transform.toSubscriptionFilter(Map) :
Map
.
Entrée (s)
Argument 1 : Carte :
{
"percentageUp": {
"lte": 50,
"gte": 20
},
"and": [
{
"title": {
"ne": "Book1"
}
},
{
"downvotes": {
"gt": 2000
}
}
],
"or": [
{
"author": {
"eq": "Admin"
}
},
{
"isPublished": {
"eq": false
}
}
]
}
Sortie
Le résultat est un Map
objet :
{
"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
}
]
}
]
}