기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
util.transform
에는 데이터 소스에 대해 복잡한 작업을 더 쉽게 수행할 수 있게 해주는 도우미 메서드가 포함되어 있습니다.
util.transform.toDynamoDBFilterExpression(filterObject: DynamoDBFilterObject) : string
-
입력 문자열을 DynamoDB에 사용할 필터 표현식으로 변환합니다.
toDynamoDBFilterExpression
을 기본 제공 모듈 함수와 함께 사용하는 것이 좋습니다. util.transform.toElasticsearchQueryDSL(object: OpenSearchQueryObject) : string
-
주어진 입력을 이와 동등한 OpenSearch 쿼리 DSL 표현식으로 변환하여 JSON 문자열로 반환합니다.
입력 예:
util.transform.toElasticsearchQueryDSL({ "upvotes":{ "ne":15, "range":[ 10, 20 ] }, "title":{ "eq":"hihihi", "wildcard":"h*i" } })
출력 예:
{ "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" } } ] } } ] } }
참고
기본 연산자는 AND로 가정합니다.
util.transform.toSubscriptionFilter(objFilter, ignoredFields?, rules?): SubscriptionFilter
-
Map
입력 객체를SubscriptionFilter
표현식 객체로 변환합니다.util.transform.toSubscriptionFilter
메서드는extensions.setSubscriptionFilter()
확장에 대한 입력으로 사용됩니다. 자세한 내용은 확장을 참조하세요.참고
파라미터와 반환 명령문은 다음과 같습니다.
파라미터
-
objFilter
:SubscriptionFilterObject
SubscriptionFilter
표현식 객체로 변환되는Map
입력 객체입니다. -
ignoredFields
:SubscriptionFilterExcludeKeysType
(선택 사항)무시될 첫 번째 객체의 필드 이름
List
입니다. -
rules
:SubscriptionFilterRuleObject
(선택 사항)SubscriptionFilter
표현식 객체를 생성할 때 포함되는 엄격한 규칙이 있는Map
입력 객체입니다. 이러한 엄격한 규칙이SubscriptionFilter
표현식 객체에 포함되므로 최소한 하나의 규칙이 충족되어 구독 필터를 통과할 수 있습니다.
응답
SubscriptionFilter
을 반환합니다. -
util.transform.toSubscriptionFilter(Map, List)
-
Map
입력 객체를SubscriptionFilter
표현식 객체로 변환합니다.util.transform.toSubscriptionFilter
메서드는extensions.setSubscriptionFilter()
확장에 대한 입력으로 사용됩니다. 자세한 내용은 확장을 참조하세요.첫 번째 인수는
SubscriptionFilter
표현식 객체로 변환되는Map
입력 객체입니다. 두 번째 인수는SubscriptionFilter
표현식 객체를 구성하는 동안 첫 번째Map
입력 객체에서 무시되는 필드 이름의List
입니다. util.transform.toSubscriptionFilter(Map, List, Map)
-
Map
입력 객체를SubscriptionFilter
표현식 객체로 변환합니다.util.transform.toSubscriptionFilter
메서드는extensions.setSubscriptionFilter()
확장에 대한 입력으로 사용됩니다. 자세한 내용은 확장을 참조하세요. util.transform.toDynamoDBConditionExpression(conditionObject)
-
DynamoDB 조건 표현식을 생성합니다.
구독 필터 인수
다음 표에서는 다음 유틸리티의 인수를 정의하는 방법을 설명합니다.
-
Util.transform.toSubscriptionFilter(objFilter, ignoredFields?, rules?): SubscriptionFilter
인수 1은 다음과 같은 키 값을 가진 Map
객체입니다.
-
필드 이름
-
‘and’
-
‘or’
필드 이름을 키로 사용하는 경우 해당 필드 항목의 조건은 "operator" : "value"
형식입니다.
다음 예에서는 Map
에 항목을 추가하는 방법을 보여줍니다.
"field_name" : {
"operator1" : value
}
## We can have multiple conditions for the same field_name:
"field_name" : {
"operator1" : value
"operator2" : value
.
.
.
}
필드에 두 개 이상의 조건이 있는 경우 이러한 모든 조건은 OR 연산을 사용하는 것으로 간주됩니다.
입력 Map
에 ‘and’와 ‘or’를 키로 사용할 수도 있습니다. 즉, 이들 항목 내의 모든 항목은 키에 따라 AND 또는 OR 논리를 사용하여 결합되어야 합니다. 키 값 ‘and’와 ‘or’에는 일련의 조건이 필요합니다.
"and" : [
{
"field_name1" : {
"operator1" : value
}
},
{
"field_name2" : {
"operator1" : value
}
},
.
.
].
참고로 ‘and’와 ‘or’는 중첩되지 않습니다. 즉, 다른 ‘and’/‘or’ 블록 내에 ‘and’/‘or’를 중첩할 수 있습니다. 하지만 단순한 필드에서는 작동하지 않습니다.
"and" : [
{
"field_name1" : {
"operator" : value
}
},
{
"or" : [
{
"field_name2" : {
"operator" : value
}
},
{
"field_name3" : {
"operator" : value
}
}
].
다음 예제에서는 util.transform.toSubscriptionFilter(Map) :
Map
를 사용하여 인수 1을 입력하는 방법을 보여줍니다.
입력
인수 1: 맵:
{
"percentageUp": {
"lte": 50,
"gte": 20
},
"and": [
{
"title": {
"ne": "Book1"
}
},
{
"downvotes": {
"gt": 2000
}
}
],
"or": [
{
"author": {
"eq": "Admin"
}
},
{
"isPublished": {
"eq": false
}
}
]
}
출력
결과는 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
}
]
}
]
}