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.
util.transform
contient des méthodes d'assistance qui facilitent l'exécution d'opérations complexes sur des sources de données.
util.transform.toDynamoDBFilterExpression(filterObject: DynamoDBFilterObject) : string
-
Convertit une chaîne d'entrée en une expression de filtre à utiliser avec DynamoDB. Nous vous recommandons de l'utiliser
toDynamoDBFilterExpression
avec les fonctions du module intégré. util.transform.toElasticsearchQueryDSL(object: OpenSearchQueryObject) : string
-
Convertit l'entrée donnée en son expression OpenSearch Query DSL équivalente, en la renvoyant sous forme de chaîne JSON.
Exemple de saisie :
util.transform.toElasticsearchQueryDSL({ "upvotes":{ "ne":15, "range":[ 10, 20 ] }, "title":{ "eq":"hihihi", "wildcard":"h*i" } })
Exemple de sortie :
{ "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" } } ] } } ] } }
Note
L'opérateur par défaut est supposé être AND.
util.transform.toSubscriptionFilter(objFilter, ignoredFields?, rules?): SubscriptionFilter
-
Convertit un objet
Map
d'entrée en objet d'SubscriptionFilter
expression. Lautil.transform.toSubscriptionFilter
méthode est utilisée comme entrée dans l'extensions.setSubscriptionFilter()
extension. Pour plus d'informations, consultez la section Extensions.Note
Les paramètres et l'instruction de retour sont répertoriés ci-dessous :
Paramètres
-
objFilter
:SubscriptionFilterObject
Objet d'
Map
entrée converti en objet d'SubscriptionFilter
expression. -
ignoredFields
:SubscriptionFilterExcludeKeysType
(facultatif)A
List
des noms de champs du premier objet qui seront ignorés. -
rules
:SubscriptionFilterRuleObject
(facultatif)Un objet
Map
d'entrée avec des règles strictes qui est inclus lors de la construction de l'objetSubscriptionFilter
d'expression. Ces règles strictes seront incluses dans l'objetSubscriptionFilter
d'expression afin qu'au moins l'une des règles soit satisfaite pour passer le filtre d'abonnement.
Réponse
Retourne un
SubscriptionFilter
. -
util.transform.toSubscriptionFilter(Map, List)
-
Convertit un objet
Map
d'entrée en objet d'SubscriptionFilter
expression. Lautil.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)
-
Convertit un objet
Map
d'entrée en objet d'SubscriptionFilter
expression. Lautil.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.toDynamoDBConditionExpression(conditionObject)
-
Crée une expression de condition DynamoDB.
Arguments du filtre d'abonnement
Le tableau suivant explique comment les arguments des utilitaires suivants sont définis :
-
Util.transform.toSubscriptionFilter(objFilter, ignoredFields?, rules?): SubscriptionFilter
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 utilisantutil.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
}
]
}
]
}